76 Commits

Author SHA1 Message Date
me 8e46cb16a5 arch, change checks for Archlinux to looking for pacman in case forks decide to use their own name in the future. 2026-08-05 16:21:41 -07:00
me 785db7e893 setup, if BRANCH is already set, don't use main. 2026-08-05 15:40:35 -07:00
me 94431dff43 setup, refactor and reword a few sections, especially related to the getopts and hosts file. 2026-08-05 14:12:29 -07:00
me dcf4b3d451 setup, handle the lowercase branch variable more properly. 2026-08-05 13:40:21 -07:00
me 58f5f13b28 bash env, change how Firefox is found. 2026-08-05 13:29:31 -07:00
me fe022d7a9c setup, lowercase branch was not being set properly due to scope. 2026-08-05 12:38:28 -07:00
me 0ef5e0cc6a bash env, only run the keymap command if the X session is set. 2026-08-05 12:30:53 -07:00
me ccabad9c30 packages, move base-devel to general in the task section. 2026-08-05 12:25:02 -07:00
me f83fe61296 packages, move base-devel to general in the task section, indent all the lists. 2026-08-05 12:22:01 -07:00
me da9c34a9da base-devel, move back to General, it's for AUR which is done for all pacman-using devices. 2026-08-04 18:06:13 -07:00
me 8c3c3fb381 msmtp, mta version does not exist on Fedora. 2026-08-04 18:02:53 -07:00
me d617334a54 locate, put value back for apt. 2026-08-04 18:00:28 -07:00
me 52c6dba409 dig, add package name for OpenSUSE and Fedora. 2026-08-04 17:32:42 -07:00
me 21d69f230b README, update the supported distro list. 2026-08-04 17:23:25 -07:00
me 3a815d319c fedora, change all package managers to use fastfetch. 2026-08-04 17:23:02 -07:00
me 94b6db2000 setup, freebsd, allow pkg to see globs. 2026-08-04 14:47:53 -07:00
me 564485145e vscode, settings, hide release notes and fix dart indents to tabs. 2026-08-04 14:26:05 -07:00
me 814451fa44 Change i3 to be a shared playbook. Group more playbooks in blocks. 2026-08-04 14:09:03 -07:00
me bd9460c8bb i3, prepare to move playbook to shared from linux. 2026-08-04 14:02:31 -07:00
me 55a531f1b4 setup, change FreeBSD to take any version of Python. 2026-08-04 13:33:31 -07:00
me c2f910aabc mullvad, only link sv if runit is being used. 2026-08-04 11:09:27 -07:00
me ccfa27fcaf tlp, fix missing quote. 2026-08-04 10:59:45 -07:00
me 3c6c7de5e1 i3, allow the backlight checks to fail (such as VMs). 2026-08-04 10:47:43 -07:00
me 24c5a2973f pacman, fix the when clause for package names. 2026-08-04 10:45:03 -07:00
me 262cfa002e TLP, try a few more changes. 2026-08-04 10:37:01 -07:00
me 4fe8daf347 TLP, wifi, do not let the card go to sleep. 2026-08-04 10:15:16 -07:00
me ea589d09b2 reconnect, fix the connection test return status. 2026-08-04 10:05:51 -07:00
me dd0412d821 AUR, use shell rather than command, change user's name. 2026-08-04 10:04:45 -07:00
me 14a0d21633 sendmail, fix typo in mta variable. 2026-08-04 09:57:18 -07:00
me 0d42c2419c workstation, move the base-devel requirement from generic. 2026-08-04 09:55:43 -07:00
me ccd87b92bb service report, don't create the enabled file for inits other than systemd. 2026-08-04 09:52:13 -07:00
me 82e32c0f95 sendmail, ensure something is installed so that cronie can log mail. 2026-08-04 09:46:49 -07:00
me 73dfdce734 bashrc, reconnect, add a reboot of the wifi if rebooting Mullvad doesn't work. 2026-08-04 09:35:33 -07:00
me bf57faaac5 workstation, move development package names to the proper fact playbook. 2026-08-04 09:26:28 -07:00
me 9406d4aca2 AUR, only install if using pacman. 2026-08-04 09:08:21 -07:00
me 4cf848d4a9 workstation, add gnome-boxes. 2026-08-04 09:00:21 -07:00
me 09f6a1e96b firefox, add the BROWSER env variable. 2026-08-04 08:45:46 -07:00
me 2d5fa52294 flutter, fix fact task numbering. 2026-08-04 08:42:03 -07:00
me d54131a1b2 android, fix playbook to also work on Artix. 2026-08-04 08:41:07 -07:00
me 8a79822ae5 dunst, add program which handled DBUS for notify-send and fyi on non-systemd machines. 2026-08-04 08:15:08 -07:00
me c66938f738 flutter, get it installing on Artix by converting the rest of the package names to variables. 2026-08-04 08:05:20 -07:00
me be849d9c70 bashrc, add a reconnect function with aliases. 2026-08-04 07:35:46 -07:00
me b69be78382 workstation packages, use fyi and notify-send side by side. 2026-08-04 06:56:13 -07:00
me 845b042d21 Add notify-send as a workstation pre-req. 2026-08-03 11:55:40 -07:00
me 42b88fb8bd flutter, change ni ja to be a variable. Others will likely need changed too. 2026-08-03 11:49:57 -07:00
me e98ad94a90 flutter, fix the mesa variable to only hold one variable, create another for the utils. 2026-08-03 11:39:24 -07:00
me dfb72122a0 i3, ensure the flatpak version of firefox is last. 2026-08-03 11:33:30 -07:00
me 671d21b9d3 i3, add shortcut to start transmission if it gets closed. 2026-08-02 13:48:26 -07:00
me edec84400e runit, fix the enabling and disabling for services and tlp playbooks. 2026-08-02 13:47:44 -07:00
me b4eeff4386 services, fix the disabling of cupsd on runit. 2026-08-02 13:22:08 -07:00
me 331cf32737 flatpak, do the executable extension more programatically. 2026-08-02 13:10:22 -07:00
me 9fb39f8503 flatpak, add -flatpak to all the executable names. 2026-08-02 13:04:10 -07:00
me b1cc1473db android, only worry about adb and fastboot for apt distros. 2026-08-02 12:46:03 -07:00
me d0580925ac service tests, change runit to use the new variable. 2026-08-02 12:45:39 -07:00
me 5732c36d1d tlp, fix the -runit package installation. 2026-08-02 12:39:55 -07:00
me 29435e43e2 android, refactor and allow the removal on non-coding devices to fail. 2026-08-02 12:34:49 -07:00
me b051bce767 tlp, attempt to automate enabling with runit. 2026-08-02 12:28:24 -07:00
me fa732599fe Flutter, allow the facts to be set and registered so that the SDK and download can be deleted. 2026-08-02 12:07:39 -07:00
me bed26990bd Flutter, ensure all tasks have coding == true while refactoring. 2026-08-02 12:02:57 -07:00
me bcfc716b46 Flutter, change a few dependencies to be handled better across different distros. 2026-08-02 11:58:52 -07:00
me 33a645fea0 yay, change the command modules to shell so that || works properly. 2026-08-02 11:50:58 -07:00
me 8e0cc7fa45 TLP, change the package manager variable to be correct (pkg not package). 2026-08-02 11:46:39 -07:00
me 13459f8f4b Packages, firefox-esr exists on Artix, allow it to be installed too. 2026-08-02 11:40:53 -07:00
me 5155952dc7 Packages, last commit also changed yay to allow errors. This one fixes a messup in how the Firefox listings were pasted. 2026-08-02 11:39:50 -07:00
me 19970515ca Install the repo version of Firefox and uninstall mail clients. 2026-08-02 11:36:25 -07:00
me 1aaf64404f i3, change Internet shortcut to also prefer local Firefoxes over Flatpak. 2026-08-02 11:30:17 -07:00
me 65a0d8b670 Changes from 2 days ago to keep getting Artix closer to a complete provision. 2026-08-02 11:26:38 -07:00
me b6b0e620cf GNOME, fix the DELETEME note to be a comment. 2026-08-02 11:25:53 -07:00
me a10480c692 i3, remove old rogue yay attempt. 2026-07-31 15:18:44 -07:00
me 00218a447f i3, allow the AUR step to be skipped. 2026-07-31 15:10:31 -07:00
me b9d0e31631 i3, allow yay to run without prompts. 2026-07-31 15:09:52 -07:00
me 5435da309a i3, correct the syntax for the list to loop over. 2026-07-31 15:07:33 -07:00
me 5ebfa7e8bb Continue fixing i3 installation for Artix. 2026-07-31 14:59:31 -07:00
me 712b0b8ffe Begin adding yay as a package manager so that themes^Can be installed seamlessly. 2026-07-31 14:53:03 -07:00
me 99cf761528 Add commands to get Mullvad SUCCESSFULLY working on Artixgit add tasks/workstation/linux/software/vpn.yml :D 2026-07-31 12:57:23 -07:00
me dbb9528f26 Fix typo. 2026-07-31 12:56:53 -07:00
24 changed files with 670 additions and 358 deletions
+11 -7
View File
@@ -19,28 +19,32 @@ This information is as of 2025-11-21.
These are the operating systems used as my daily driver. These are the operating systems used as my daily driver.
#### Artix (`runit`)
2026-08-04: Completed adapting playbooks and now using this as a daily driver.
2026-07-31: Began experimenting and adapting playbooks using VMs.
#### Debian Trixie #### Debian Trixie
This has been used as my primary server and workstation OS since at least 2024. This has been used as my primary server and workstation OS since at least 2024.
The `apt` version of `ansible` in both Bookworm and Trixie are sufficient, The `apt` version of `ansible` in both Bookworm and Trixie are sufficient,
no longer need to use `ansible` out of `pip`. no longer need to use `ansible` out of `pip`.
Stopped using as a workstation on all devices in August 2026. Stopped using as a workstation on all devices in August 2026.
#### Devuan (with `runit`) #### Devuan (`runit`)
2026-07-30: Distribution has beed added with a few caveats. 2026-07-30: Distribution has beed added with a few caveats.
- `runit` is the currently the expected init system (not OpenRC or SysVInit) - `runit` is the currently the expected init system (not OpenRC or SysVInit)
- Mullvad needs installed via .dev file [here](). - Mullvad needs installed via .dev file [TBD: link here]().
#### Artix Linux (OpenRC or runit)
2026-07-31: Began experimenting and adapting playbooks using VMs.
### Secondary ### Secondary
These are tested via my Docker project's `ProvisionsTests` container but not currently used as daily drivers. These are tested via my Docker project's `ProvisionsTests` containers
but not currently used as daily drivers. [TBD: Link]()
#### Arch #### Arch
+1
View File
@@ -1,6 +1,7 @@
[defaults] [defaults]
inventory=hosts inventory=hosts
interpreter_python=auto_silent interpreter_python=auto_silent
inject_facts_as_vars=True
[inventory] [inventory]
localhost_warning=False localhost_warning=False
+11 -3
View File
@@ -10,10 +10,15 @@
nethogs: nethogs nethogs: nethogs
ntp_server: chrony ntp_server: chrony
dig: dig dig: dig
neofetch: neofetch neofetch: fastfetch
lightdm: lightdm lightdm: lightdm
sddm: sddm sddm: sddm
tmux: tmux tmux: tmux
base_devel: htop # Placeholder for Arch package.
sendmail: msmtp
sendmail_mta: msmtp-mta
ca_certificates: ca-certificates
locate: mlocate
- name: General | Facts | Package | Parrot OS Fixes - name: General | Facts | Package | Parrot OS Fixes
set_fact: set_fact:
@@ -30,7 +35,6 @@
cron: cron cron: cron
encfs: encfs encfs: encfs
dig: dnsutils dig: dnsutils
neofetch: fastfetch
when: ansible_pkg_mgr == "apt" when: ansible_pkg_mgr == "apt"
- name: General | Facts | Package | pacman - name: General | Facts | Package | pacman
@@ -42,6 +46,7 @@
cron: cronie cron: cronie
encfs: encfs encfs: encfs
dig: bind dig: bind
base_devel: base-devel
when: ansible_pkg_mgr == "pacman" when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Package | FreeBSD - name: General | Facts | Package | FreeBSD
@@ -56,7 +61,7 @@
encfs: fusefs-encfs encfs: fusefs-encfs
when: ansible_system == "FreeBSD" when: ansible_system == "FreeBSD"
- name: General | Facts | Package | dnf (Fixes) # TBD: Fix + test package names: mlocate, dig, neofetch - name: General | Facts | Package | dnf (Fixes)
set_fact: set_fact:
ansible_pkg_mgr: dnf ansible_pkg_mgr: dnf
when: ansible_pkg_mgr in ("dnf5") when: ansible_pkg_mgr in ("dnf5")
@@ -70,6 +75,8 @@
microcode_intel: microcode_ctl microcode_intel: microcode_ctl
cron: cronie cron: cronie
encfs: fuse-encfs encfs: fuse-encfs
dig: bind-utils
sendmail_mta: msmtp
when: ansible_pkg_mgr == "dnf" when: ansible_pkg_mgr == "dnf"
- name: General | Facts | Package | zypper - name: General | Facts | Package | zypper
@@ -80,6 +87,7 @@
microcode_intel: ucode-intel microcode_intel: ucode-intel
cron: cronie cron: cronie
encfs: encfs encfs: encfs
dig: bind-utils
when: ansible_pkg_mgr == "zypper" when: ansible_pkg_mgr == "zypper"
+1 -1
View File
@@ -21,7 +21,7 @@
set_fact: set_fact:
crond: cronie crond: cronie
crond_pattern: cronie crond_pattern: cronie
when: ansible_distribution in ("Archlinux") when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Service | Fedora - name: General | Facts | Service | Fedora
set_fact: set_fact:
+9 -3
View File
@@ -12,6 +12,8 @@
git_repo_ssh: ssh://git@{{ git_host }}:{{ git_ssh_port }}/{{ git_user }}/{{ git_project }} git_repo_ssh: ssh://git@{{ git_host }}:{{ git_ssh_port }}/{{ git_user }}/{{ git_project }}
shared_rc_install_dir: ~/.git-env-shared shared_rc_install_dir: ~/.git-env-shared
notify_log: "ansible.notify.log" notify_log: "ansible.notify.log"
runit_script_dir: /etc/runit/sv
runit_service_dir: /etc/runit/runsvdir/default
- name: General | Facts | System | Global [2/2] - name: General | Facts | System | Global [2/2]
set_fact: set_fact:
@@ -27,7 +29,6 @@
shutdown_command: sudo shutdown -h now shutdown_command: sudo shutdown -h now
when: ansible_system == "Linux" when: ansible_system == "Linux"
- name: General | Facts | System | FreeBSD - name: General | Facts | System | FreeBSD
set_fact: set_fact:
rc_conf: /etc/rc.conf rc_conf: /etc/rc.conf
@@ -35,14 +36,19 @@
shutdown_command: sudo shutdown -p now shutdown_command: sudo shutdown -p now
when: ansible_system == "FreeBSD" when: ansible_system == "FreeBSD"
- name: General | Facts | System | Report File Names - name: General | Facts | System | Report File Names
set_fact: set_fact:
lynis_report: "lynis_hardness_check.txt" lynis_report: "lynis_hardness_check.txt"
nmap_report: "nmap_port_check.txt" nmap_report: "nmap_port_check.txt"
- name: General | Facts | System | Ansible Branch - name: General | Facts | System | Ansible Branch
set_fact: set_fact:
branch: main branch: main
when: branch is not defined when: branch is not defined
- name: General | Facts | System | runit (Devuan)
set_fact:
runit_script_dir: /etc/sv
runit_service_dir: /etc/services
when: ansible_pkg_mgr == "apt"
+54 -7
View File
@@ -26,15 +26,56 @@
dmenu: dmenu dmenu: dmenu
sassc: sassc sassc: sassc
ffmpeg: ffmpeg ffmpeg: ffmpeg
wireless_tools: wireless-tools
macbook_wifi_driver: broadcom-sta-dkms
xz: xz
mesa: mesa
mesa_utils: mesa-utils
ninja: ninja
notify_send: libnotify
fyi: fyi
gtk3: gtk3
xz_libs: xz
cpp: libstdc++
c_libs: glibc
cpp_libs: libstdc++
z_libs: zlib
bzip: bzip2
dunst: dunst
android_jdk: openjdk
ncurses: ncurses
android_fastboot: fastboot
android_adb: adb
android_sdkmanager: sdkmanager
android_udev: android-udev
gnome_boxes: gnome-boxes
- name: Workstation | Facts | Package | apt (All Distros)
set_fact:
xz: xz-utils
mesa: libglu1-mesa
mesa_utils: libglu1-mesa
ninja: ninja-build
notify_send: libnotify-bin
gtk3: libgtk-3-dev
xz_libs: liblzma-dev
cpp: libstdc++-12-dev
c_libs: libc6:amd64
cpp_libs: libstdc++6
z_libs: lib32z1
bzip: libbz2-1.0
android_jdk: default-jdk
ncurses: libncurses5
android_udev: android-udev-rules
when: ansible_pkg_mgr == "apt"
- name: Workstation | Facts | Package | Pop_OS! - name: Workstation | Facts | Package | Pop_OS!
set_fact: set_fact:
flatpak_distro: true flatpak_distro: true
firefox_esr: firefox firefox_esr: firefox
when: ansible_distribution == "Pop!_OS" when: ansible_distribution == "Pop!_OS"
- name: Workstation | Facts | Package | Ubuntu - name: Workstation | Facts | Package | Ubuntu
set_fact: set_fact:
flatpak_distro: true flatpak_distro: true
@@ -42,35 +83,41 @@
dmenu: suckless-tools dmenu: suckless-tools
when: ansible_distribution == "Ubuntu" when: ansible_distribution == "Ubuntu"
- name: Workstation | Facts | Package | Debian & Devuan - name: Workstation | Facts | Package | Debian & Devuan
set_fact: set_fact:
flatpak_distro: true flatpak_distro: true
dmenu: suckless-tools dmenu: suckless-tools
firefox: firefox-esr
when: ansible_distribution in ("Debian", "Devuan") when: ansible_distribution in ("Debian", "Devuan")
- name: Workstation | Facts | Package | Mint - name: Workstation | Facts | Package | Mint
set_fact: set_fact:
flatpak_distro: true flatpak_distro: true
firefox_esr: firefox firefox_esr: firefox
when: ansible_distribution == "Linux Mint" when: ansible_distribution == "Linux Mint"
- name: Workstation | Facts | Package | Parrot OS - name: Workstation | Facts | Package | Parrot OS
set_fact: set_fact:
flatpak_distro: true flatpak_distro: true
firefox_esr: firefox-esr
when: ansible_distribution == "Parrot OS" when: ansible_distribution == "Parrot OS"
- name: Workstation | Facts | Package | pacman (All Distros)
set_fact:
macbook_wifi_driver: broadcom-wl-dkms
android_jdk: jdk-openjdk
android_fastboot: android-tools
android_adb: android-tools
when: ansible_pkg_mgr == "pacman"
- name: Workstation | Facts | Package | Arch / Manjaro / Artix - name: Workstation | Facts | Package | Arch / Manjaro / Artix
set_fact: set_fact:
flatpak_distro: true flatpak_distro: true
firefox_esr: firefox
psutil: python-psutil psutil: python-psutil
appimagelauncher: appimagelauncher #appimagelauncher: appimagelauncher # No longer in the repos, AUR.
font_awesome: ttf-font-awesome font_awesome: ttf-font-awesome
wireless_tools: wireless_tools
nfs: nfs-utils
when: ansible_pkg_mgr == "pacman" when: ansible_pkg_mgr == "pacman"
+7 -5
View File
@@ -131,8 +131,7 @@ bindsym $mod+t exec lxappearance
bindsym $mod+m exec thunar bindsym $mod+m exec thunar
# Internet. # Internet.
#bindsym $mod+i exec firefox bindsym $mod+i exec "firefox || firefox-esr || firefox-flatpak"
bindsym $mod+i exec firefox-flatpak
# Code. # Code.
bindsym $mod+c exec codium-flatpak bindsym $mod+c exec codium-flatpak
@@ -254,10 +253,11 @@ assign [class="(?i).*Mullvad.*"] $ws10
## Workspace Specific Workflows ## ## Workspace Specific Workflows ##
bindsym $ctrl+$shift+1 workspace $ws1; exec i3-sensible-terminal; bindsym $ctrl+$shift+1 workspace $ws1; exec i3-sensible-terminal;
bindsym $ctrl+$shift+2 workspace $ws2; exec firefox-flatpak; bindsym $ctrl+$shift+2 workspace $ws2; exec "firefox || firefox-esr || firefox-flatpak";
bindsym $ctrl+$shift+3 workspace $ws3; exec codium-flatpak; bindsym $ctrl+$shift+3 workspace $ws3; exec codium-flatpak;
bindsym $ctrl+$shift+4 workspace $ws4; exec code-flatpak; bindsym $ctrl+$shift+4 workspace $ws4; exec code-flatpak;
bindsym $ctrl+$shift+5 workspace $ws5; exec "session; dino" bindsym $ctrl+$shift+5 workspace $ws5; exec "session; dino"
bindsym $ctrl+$shift+7 workspace $ws7; exec "transmission || transmission-gtk || transmission-flatpak"
## Reloads, Restarts, Exit ## ## Reloads, Restarts, Exit ##
@@ -326,10 +326,12 @@ bar {
exec mullvad-vpn exec mullvad-vpn
exec i3-sensible-terminal exec i3-sensible-terminal
#exec firefox-flatpak exec "transmission || transmission-gtk || transmission-flatpak"
exec transmission
exec light -O exec light -O
exec light -N 0 exec light -N 0
exec setxkbmap -layout us -variant altgr-intl exec setxkbmap -layout us -variant altgr-intl
exec --no-startup-id dunst
+1
View File
@@ -4,6 +4,7 @@
"save_loc2": "~/.var/app/com.vscodium.codium/config/VSCodium/{{ user_desc }}/settings.json", "save_loc2": "~/.var/app/com.vscodium.codium/config/VSCodium/{{ user_desc }}/settings.json",
"END_COMMENTS": "", "END_COMMENTS": "",
"update.showReleaseNotes": false,
"workbench.startupEditor": "none", "workbench.startupEditor": "none",
"editor.rulers": [ "editor.rulers": [
80, 120, 200 80, 120, 200
+21 -31
View File
@@ -88,6 +88,9 @@
- include_tasks: tasks/general/software/sendmail.yml - include_tasks: tasks/general/software/sendmail.yml
when: ansible_system == "FreeBSD" when: ansible_system == "FreeBSD"
- include_tasks: tasks/general/software/aur.yml
when: ansible_pkg_mgr == "pacman"
# Gather again in case missing programs have now been installed. # Gather again in case missing programs have now been installed.
- include_tasks: facts/general/gather.yml - include_tasks: facts/general/gather.yml
@@ -128,8 +131,7 @@
# Window Managers without true Desktop Environments # # Window Managers without true Desktop Environments #
- include_tasks: tasks/workstation/shared/software/dwm.yml - include_tasks: tasks/workstation/shared/software/dwm.yml
- include_tasks: tasks/workstation/shared/software/i3.yml
- include_tasks: tasks/workstation/linux/software/i3.yml
# Polished Desktop Environments # # Polished Desktop Environments #
- include_tasks: tasks/workstation/freebsd/software/gnome.yml - include_tasks: tasks/workstation/freebsd/software/gnome.yml
@@ -139,7 +141,6 @@
block: block:
- include_tasks: tasks/workstation/linux/software/gnome.yml - include_tasks: tasks/workstation/linux/software/gnome.yml
when: ansible_service_mgr == "systemd" when: ansible_service_mgr == "systemd"
- include_tasks: tasks/workstation/linux/software/cinnamon.yml - include_tasks: tasks/workstation/linux/software/cinnamon.yml
- include_tasks: tasks/workstation/linux/software/lxqt.yml - include_tasks: tasks/workstation/linux/software/lxqt.yml
when: ansible_system == "Linux" when: ansible_system == "Linux"
@@ -147,19 +148,15 @@
## Software Tasks ## ## Software Tasks ##
- block:
- include_tasks: tasks/workstation/linux/software/packages.yml - include_tasks: tasks/workstation/linux/software/packages.yml
when: ansible_system == "Linux" - include_tasks: tasks/workstation/linux/software/tlp.yml
- include_tasks: tasks/workstation/linux/software/lutris.yml - include_tasks: tasks/workstation/linux/software/lutris.yml
when: ansible_system == "Linux"
- include_tasks: tasks/workstation/linux/software/vscodium.yml - include_tasks: tasks/workstation/linux/software/vscodium.yml
when: ansible_system == "Linux" - include_tasks: tasks/workstation/linux/software/vpn.yml
- include_tasks: tasks/workstation/linux/software/nodejs.yml
- include_tasks: tasks/workstation/linux/software/brave.yml - include_tasks: tasks/workstation/linux/software/brave.yml
when: ansible_pkg_mgr in ("apt", "dnf", "zypper") and not mobile when: ansible_pkg_mgr in ("apt", "dnf", "zypper") and not mobile
- include_tasks: tasks/workstation/linux/software/vpn.yml
when: ansible_system == "Linux" when: ansible_system == "Linux"
- include_tasks: tasks/workstation/freebsd/software/packages.yml - include_tasks: tasks/workstation/freebsd/software/packages.yml
@@ -168,17 +165,16 @@
- include_tasks: tasks/workstation/mac-os/software/brew.yml - include_tasks: tasks/workstation/mac-os/software/brew.yml
when: ansible_system == "Darwin" when: ansible_system == "Darwin"
- include_tasks: tasks/workstation/linux/software/nodejs.yml
## Configuration Tasks ## ## Configuration Tasks ##
- block:
- include_tasks: tasks/workstation/shared/settings/gnome.yml - include_tasks: tasks/workstation/shared/settings/gnome.yml
when: not mobile
- include_tasks: tasks/workstation/shared/settings/cinnamon.yml - include_tasks: tasks/workstation/shared/settings/cinnamon.yml
when: not mobile
- include_tasks: tasks/workstation/linux/cron/ansible.yml - include_tasks: tasks/workstation/linux/cron/ansible.yml
when: ansible_system == "Linux" and not mobile when: ansible_system == "Linux"
when: not mobile
- include_tasks: tasks/workstation/shared/settings/nfs.yml - include_tasks: tasks/workstation/shared/settings/nfs.yml
@@ -189,21 +185,16 @@
when: vnc == true when: vnc == true
- include_tasks: tasks/workstation/shared/settings/services.yml - include_tasks: tasks/workstation/shared/settings/services.yml
- include_tasks: tasks/workstation/linux/software/tlp.yml
- include_tasks: tasks/workstation/shared/settings/templates.yml - include_tasks: tasks/workstation/shared/settings/templates.yml
## Final Tasks (SLOW) ## ## Final Tasks (SLOW) ##
- block:
- include_tasks: tasks/workstation/linux/software/flutter.yml - include_tasks: tasks/workstation/linux/software/flutter.yml
when: ansible_system == "Linux"
- include_tasks: tasks/workstation/linux/software/android.yml - include_tasks: tasks/workstation/linux/software/android.yml
when: ansible_system == "Linux"
- include_tasks: tasks/workstation/linux/software/flatpaks.yml - include_tasks: tasks/workstation/linux/software/flatpaks.yml
when: ansible_system == "Linux" and flatpak_distro when: flatpak_distro
when: ansible_system == "Linux"
when: workstation == true when: workstation == true
@@ -257,22 +248,21 @@
- include_tasks: tasks/server/software/services.yml - include_tasks: tasks/server/software/services.yml
- block:
- include_tasks: tasks/server/software/certbot.yml - include_tasks: tasks/server/software/certbot.yml
when: certbot == true
- include_tasks: tasks/server/cron/certbot.yml - include_tasks: tasks/server/cron/certbot.yml
when: certbot == true when: certbot == true
- block:
- include_tasks: tasks/server/software/onlyoffice.yml - include_tasks: tasks/server/software/onlyoffice.yml
when: onlyoffice == true and ansible_pkg_mgr == "apt" when: onlyoffice == true
- include_tasks: tasks/server/software/influxdb1.yml - include_tasks: tasks/server/software/influxdb1.yml
when: influxdb1 == true and ansible_pkg_mgr == "apt" when: influxdb1 == true
- include_tasks: tasks/server/software/influxdb2.yml - include_tasks: tasks/server/software/influxdb2.yml
when: influxdb2 == true and ansible_pkg_mgr == "apt" when: influxdb2 == true
- include_tasks: tasks/server/software/grafana.yml - include_tasks: tasks/server/software/grafana.yml
when: grafana == true and ansible_pkg_mgr == "apt" when: grafana == true
when: ansible_pkg_mgr == "apt"
- include_tasks: tasks/server/software/hugo.yml - include_tasks: tasks/server/software/hugo.yml
when: hugo == true when: hugo == true
+38 -23
View File
@@ -7,12 +7,23 @@ DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")" PROG="$(basename -- "${BASH_SOURCE[0]}")"
LOCAL=$DIR/local.yml LOCAL=$DIR/local.yml
URL="https://git.hyperling.com/me/env-ansible" URL="https://git.hyperling.com/me/env-ansible"
BRANCH="main" if [[ -z $BRANCH ]]; then
export BRANCH="main"
fi
LINUX_HOSTS_DIR=/etc/ansible
LINUX_HOSTS_FILE="$LINUX_HOSTS_DIR/hosts"
FREEBSD_HOSTS_DIR="/usr/local/etc/ansible"
FREEBSD_HOSTS_FILE="$FREEBSD_HOSTS_DIR/hosts"
HOSTS_DIR="$LINUX_HOSTS_DIR"
HOSTS_FILE="$LINUX_HOSTS_FILE"
config_dir="/usr/local/etc/hyperling-scm" config_dir="/usr/local/etc/hyperling-scm"
general_config="$config_dir/general.ini" general_config="$config_dir/general.ini"
workstation_config="$config_dir/workstation.ini" workstation_config="$config_dir/workstation.ini"
server_config="$config_dir/server.ini" server_config="$config_dir/server.ini"
branch=""
## Functions ## ## Functions ##
@@ -45,10 +56,10 @@ while getopts ":lb:gwsfh" arg; do
case $arg in case $arg in
l) local="Y" && echo "Running $LOCAL as the playbook." ;; l) local="Y" && echo "Running $LOCAL as the playbook." ;;
b) branch="$OPTARG" && echo "Using branch $branch instead of $BRANCH." ;; b) branch="$OPTARG" && echo "Using branch $branch instead of $BRANCH." ;;
g) create_general="Y" && echo "Requested '$general_config'." ;; g) create_general="Y" && echo "Generating test '$general_config'." ;;
w) create_workstation="Y" && echo "Requested '$workstation_config'." ;; w) create_workstation="Y" && echo "Generating test '$workstation_config'." ;;
s) create_server="Y" && echo "Requested '$server_config'." ;; s) create_server="Y" && echo "Generating test '$server_config'." ;;
f) show_facts="Y" ;; f) show_facts="Y" && echo "Displaying ansible facts then exiting." ;;
h) usage ;; h) usage ;;
*) echo "ERROR: Parameter $OPTARG was not recognized." && usage 1 ;; *) echo "ERROR: Parameter $OPTARG was not recognized." && usage 1 ;;
esac esac
@@ -60,9 +71,13 @@ if [[ ! -z $1 && $1 != "-"* ]]; then
usage 1 usage 1
fi fi
if [[ -z "$local" && "$branch" == "" ]]; then if [[ "$branch" == "" ]]; then
echo "Using default branch $BRANCH."
branch="$BRANCH" branch="$BRANCH"
if [[ -z "$local" ]]; then
echo "Running against default branch '$branch'."
else
echo "Set branch to '$branch'."
fi
fi fi
if [[ -n "$create_general" && -f "$general_config" ]]; then if [[ -n "$create_general" && -f "$general_config" ]]; then
@@ -92,41 +107,41 @@ if [[ `which ansible > /dev/null; echo $?` != 0 ]]; then
if [[ $os == *Debian* || $os == *Ubuntu* || $os == *"Pop!_OS"* || $os == *Mint* || $os == *Parrot* ]]; then if [[ $os == *Debian* || $os == *Ubuntu* || $os == *"Pop!_OS"* || $os == *Mint* || $os == *Parrot* ]]; then
sudo apt update sudo apt update
sudo apt install -y ansible git <<< N sudo apt install -y ansible git <<< N
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *FreeBSD* ]]; then elif [[ $os == *FreeBSD* ]]; then
sudo pkg install -y py38-ansible git sudo pkg install -y -g py*-ansible git
sudo mkdir -p /usr/local/etc/ansible HOSTS_DIR="$FREEBSD_HOSTS_DIR"
sudo sh -c 'echo "localhost ansible_connection=local" > /usr/local/etc/ansible/hosts' HOSTS_FILE="$FREEBSD_HOSTS_FILE"
elif [[ $os == *Arch* || $os == *Manjaro* || $os == *Artix* ]]; then elif [[ $os == *Arch* || $os == *Manjaro* || $os == *Artix* ]]; then
sudo pacman -Sy --noconfirm ansible git sudo pacman -Sy --noconfirm ansible git
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *Darwin* ]]; then elif [[ $os == *Darwin* ]]; then
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "TESTING - EXIT!"
exit 0
brew install ansible git brew install ansible git
HOSTS_DIR=""
HOSTS_FILE=""
elif [[ $os == *Fedora* ]]; then elif [[ $os == *Fedora* ]]; then
sudo dnf install -y ansible git python3-libselinux sudo dnf install -y ansible git python3-libselinux
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *openSUSE* ]]; then elif [[ $os == *openSUSE* ]]; then
sudo zypper install -y ansible git sudo zypper install -y ansible git
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *NixOS* ]]; then elif [[ $os == *NixOS* ]]; then
$DIR/files/scripts/nixos.sh -b $branch $DIR/files/scripts/nixos.sh -b $branch
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
else else
echo -e "ERROR: OS not detected." echo -e "ERROR: OS not recognized."
echo -e "$os" echo -e "$os"
exit 1 exit 1
fi fi
fi fi
echo "Installed!" echo "Installed!"
if [[ -n $HOSTS_DIR && -n $HOSTS_FILE ]]; then
echo "Ensuring hosts file exists..."
if [[ ! -e $HOSTS_FILE ]]; then
sudo mkdir -pv $HOSTS_DIR
sudo sh -c "echo 'localhost ansible_connection=local' > $HOSTS_FILE"
fi
echo "$HOSTS_FILE: '`cat $HOSTS_FILE`'"
echo "Hosts file created successfully!"
fi
if [[ "$show_facts" == "Y" ]]; then if [[ "$show_facts" == "Y" ]]; then
echo "Showing Ansible Facts" echo "Showing Ansible Facts"
ansible localhost -m setup --connection=local ansible localhost -m setup --connection=local
+78 -4
View File
@@ -16,12 +16,12 @@
backup: yes backup: yes
create: no create: no
state: present state: present
when: ansible_distribution == "Archlinux" when: ansible_pkg_mgr == "pacman"
#- name: General | Account Management | Users | Use ZSH (Arch+Manjaro) #- name: General | Account Management | Users | Use ZSH (Arch+Manjaro)
# set_fact: # set_fact:
# user_shell: "{{ zsh_exec.stdout }}" # user_shell: "{{ zsh_exec.stdout }}"
# when: ansible_distribution == "Archlinux" # when: ansible_pkg_mgr == "pacman"
# #
#- name: General | Account Management | Users | Allow ZSH (Arch) #- name: General | Account Management | Users | Allow ZSH (Arch)
# lineinfile: # lineinfile:
@@ -32,7 +32,7 @@
# backup: yes # backup: yes
# create: no # create: no
# state: present # state: present
# when: ansible_distribution == "Archlinux" # when: ansible_pkg_mgr == "pacman"
## Root ## ## Root ##
@@ -128,7 +128,17 @@
export_path_sbin: export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin" export_path_sbin: export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
#export_terminal: export TERMINAL="alacritty" # colors look weird. #export_terminal: export TERMINAL="alacritty" # colors look weird.
export_terminal: export TERMINAL="kitty" export_terminal: export TERMINAL="kitty"
keyboard_settings: setxkbmap -layout us -variant altgr-intl export_browser: |
function find-firefox {
which firefox 2>/dev/null ||
which firefox-esr 2>/dev/null ||
which firefox-flatpak 2>/dev/null
}
export BROWSER="`find-firefox`"
keyboard_settings: |
if [[ -n "$XDG_SESSION_ID" ]]; then
setxkbmap -layout us -variant altgr-intl
fi
- name: General | Account Management | Users | Files | RC Variables - name: General | Account Management | Users | Files | RC Variables
set_fact: set_fact:
@@ -1116,6 +1126,68 @@
done done
sh -c "rm '{{ notify_log_file_wip }}'" sh -c "rm '{{ notify_log_file_wip }}'"
fi fi
function_reconnect: |
function reconnect {
test_domain="git.hyperling.com"
test_connection() {
ping -c 3 $test_domain
status="$?"
echo "* Status Returned: '$status'"
return $status
}
test_connection &&
echo -e "\n* Looks good! Not trying anything." &&
return 0 ||
echo -e "\n* Connection failed, troubleshooting..."
show_connection() {
ip addr | grep ' UP '
ip addr | grep ' inet'
#ip addr | grep -i 'mullvad'
}
echo -e "\n* Current Connections:"
show_connection
reset_mullvad() {
mullvad disconnect && sleep 5 && mullvad connect && sleep 5
}
echo -e "\n* Turning Mullvad Off & On Again"
reset_mullvad
echo "Done!"
echo -e "\n* Checking Connections"
show_connection
echo -e "\n* Testing Again..."
test_connection &&
echo -e "\n* Looks good! Not trying anything else." &&
return 0 ||
echo -e "\n* Connection failed, troubleshooting more..."
reset_wifi() {
wifi off
sleep 5
wifi on
sleep 5
}
echo -e "\n* Turning WiFi Off & On Again"
reset_wifi
echo "Done!"
echo -e "\n* Testing Again..."
test_connection &&
echo -e "\n* Looks good now!" &&
return 0 ||
echo -e "\n* Connection still failed, maybe try rebooting?"
}
alias test_wifi="reconnect"
alias test_network="reconnect"
alias test_connection="reconnect"
alias test_connections="reconnect"
alias fix_wifi="reconnect"
alias fix_network="reconnect"
alias fix_connection="reconnect"
alias fix_connections="reconnect"
- name: General | Account Management | Users | Files | Common Variable - name: General | Account Management | Users | Files | Common Variable
@@ -1124,6 +1196,7 @@
{{ export_path_additions }} {{ export_path_additions }}
{{ export_path_sbin }} {{ export_path_sbin }}
{{ export_terminal }} {{ export_terminal }}
{{ export_browser }}
{{ keyboard_settings}} {{ keyboard_settings}}
rc_common: | rc_common: |
# Fixes "command not found" when using aliases within functions. # Fixes "command not found" when using aliases within functions.
@@ -1203,6 +1276,7 @@
{{ alias_commit }} {{ alias_commit }}
{{ function_loop }} {{ function_loop }}
{{ process_notify_log }} {{ process_notify_log }}
{{ function_reconnect }}
- name: General | Account Management | Users | Files | .profile + .xsessionrc - name: General | Account Management | Users | Files | .profile + .xsessionrc
blockinfile: blockinfile:
+51
View File
@@ -0,0 +1,51 @@
---
# 20260731 - Hyperling
# Install the AUR on pacman-related distros.
- name: General | Software | AUR | Facts 01
set_fact:
aur_user: aurbuilder
aur_build_dir: ~/src
aur_helper: yay
aur_helper_url: https://aur.archlinux.org/yay-bin.git
- name: General | Software | AUR | Facts 02
set_fact:
aur_helper_dir: "{{ aur_build_dir }}/{{ aur_helper }}"
aur_sudoers: "/etc/sudoers.d/sudoers_{{ aur_user }}"
- name: General | Software | AUR | User
user:
name: "{{ aur_user }}"
groups: wheel
create_home: true
- name: General | Software | AUR | Sudoers
lineinfile:
path: "{{ aur_sudoers }}"
line: "{{ aur_user }} ALL=(ALL) NOPASSWD: /usr/bin/pacman"
create: true
mode: '0440'
validate: 'visudo -cf %s'
- name: General | Software | AUR | Check
command: "which {{ aur_helper }}"
register: yay_check
changed_when: false
failed_when: false
- name: General | Software | AUR | Install
block:
- name: General | Software | AUR | Install | Clone Repo
git:
repo: "{{ aur_helper_url }}"
dest: "{{ aur_helper_dir }}"
- name: General | Software | AUR | Install | Build & Integrate
shell: "cd {{ aur_helper_dir }} && makepkg -si --noconfirm"
changed_when: true
when: yay_check.rc != 0
become_user: "{{ aur_user }}"
+9 -5
View File
@@ -61,6 +61,10 @@
- "{{ ntp_server }}" - "{{ ntp_server }}"
- "{{ dig }}" - "{{ dig }}"
- "{{ tmux }}" - "{{ tmux }}"
- "{{ base_devel }}"
- "{{ sendmail }}"
- "{{ sendmail_mta }}"
- "{{ ca_certificates }}"
state: present state: present
- name: General | Software | Packages | Install Software (DEV) - name: General | Software | Packages | Install Software (DEV)
@@ -92,21 +96,21 @@
when: ansible_distribution == "Debian" when: ansible_distribution == "Debian"
ignore_errors: yes ignore_errors: yes
- name: General | Software | Services | Install killall (Looking at you, Debian) - name: General | Software | Packages | Install killall (Looking at you, Debian)
package: package:
name: psmisc name: psmisc
state: present state: present
when: ansible_distribution == "Debian" when: ansible_distribution == "Debian"
- name: General | Software | Services | Install "Bloat" (Looking at you, Arch Base) - name: General | Software | Packages | Install "Bloat" (Looking at you, Arch Base)
package: package:
name: name:
- which - which
- "{{ cron }}" - "{{ cron }}"
state: present state: present
when: ansible_distribution == "Archlinux" when: ansible_pkg_mgr == "pacman"
- name: General | Software | Services | Install Fix (Looking at you, openSUSE) - name: General | Software | Packages | Install Fix (Looking at you, openSUSE)
package: package:
name: name:
# openSUSE Tumbleweed comes without gnome-control-center being able to open # openSUSE Tumbleweed comes without gnome-control-center being able to open
@@ -135,7 +139,7 @@
state: absent state: absent
# Ubuntu still uses snap for critical components like GNOME, must keep. # Ubuntu still uses snap for critical components like GNOME, must keep.
- name: General | Software | Services | Disable Snap Daemon - name: General | Software | Packages | Disable Snap Daemon
service: service:
name: snapd name: snapd
pattern: snapd pattern: snapd
+9 -6
View File
@@ -135,12 +135,15 @@
when: ansible_service_mgr != "runit" when: ansible_service_mgr != "runit"
- name: General | Software | Services | Disable (runit) - name: General | Software | Services | Disable (runit)
service: shell: |
name: "{{ item.name }}" if [[ -e {{ runit_service_dir }}/{{ item.name }} ]]; then
state: stopped rm -v {{ runit_service_dir }}/{{ item.name }}
enabled: no fi
ignore_errors: yes ignore_errors: yes
loop: loop:
- {name: "{{ cups }}" } - {name: "{{ cups }}" }
- {name: "{{ cups_browse }}"} - {name: "{{ cups_pattern }}" }
when: ansible_service_mgr = "runit" - {name: "{{ cups_browse }}" }
- {name: "{{ cups_browse_pattern }}"}
when: ansible_service_mgr == "runit"
+3 -2
View File
@@ -5,7 +5,7 @@
set_fact: set_fact:
services_report_file: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.services.txt" services_report_file: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.services.txt"
services_enabled_file: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.services-enabled.txt" services_enabled_file: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.services-enabled.txt"
services_command: "echo 'Service Manager {{ ansisible_service_mgr }} Not Recognized'" services_command: "echo 'Service Manager {{ ansible_service_mgr }} Not Recognized'"
- name: General | Tests | Services | Set Facts | SystemD - name: General | Tests | Services | Set Facts | SystemD
set_fact: set_fact:
@@ -14,7 +14,7 @@
- name: General | Tests | Services | Set Facts | runit - name: General | Tests | Services | Set Facts | runit
set_fact: set_fact:
services_command: 'for s in /var/service/*; do sv status "$s"; done' services_command: 'for s in {{ runit_service_dir }}/*; do sv status "$s"; done'
when: ansible_service_mgr == "runit" when: ansible_service_mgr == "runit"
- name: General | Tests | Services | Create Main Report - name: General | Tests | Services | Create Main Report
@@ -30,6 +30,7 @@
- "date > {{ services_enabled_file }}" - "date > {{ services_enabled_file }}"
- "echo '\n-= Enabled + Sorted =-\n' >> {{ services_enabled_file }}" - "echo '\n-= Enabled + Sorted =-\n' >> {{ services_enabled_file }}"
- "grep 'enabled' {{ services_report_file }} | sort >> {{ services_enabled_file }}" - "grep 'enabled' {{ services_report_file }} | sort >> {{ services_enabled_file }}"
when: ansible_service_mgr == "systemd"
- name: General | Tests | Services | Make Viewable - name: General | Tests | Services | Make Viewable
file: file:
+28 -17
View File
@@ -173,21 +173,23 @@
- name: Workstation | Linux | Software | Android | Dependencies [Install] - name: Workstation | Linux | Software | Android | Dependencies [Install]
package: package:
name: name:
- default-jdk - "{{ android_jdk }}"
- libc6 - "{{ c_libs }}"
- libncurses5 - "{{ ncurses }}"
- libstdc++6 - "{{ cpp_libs }}"
- lib32z1 - "{{ z_libs }}"
- libbz2-1.0 - "{{ bzip }}"
- "{{ android_udev }}"
state: present state: present
when: coding == true when: coding == true
- name: Workstation | Linux | Software | Android | Dependencies [Remove] - name: Workstation | Linux | Software | Android | Dependencies [Remove]
package: package:
name: name:
- sdkmanager - "{{ android_sdkmanager }}"
state: absent state: absent
when: coding == true when: coding == true
and ansible_pkg_mgr == "apt"
## Install SDK ## ## Install SDK ##
@@ -219,7 +221,8 @@
group: "{{ user }}" group: "{{ user }}"
become_user: "{{ user }}" become_user: "{{ user }}"
when: coding == true and not android_sdkmanager_temp_stat.stat.exists when: coding == true
and not android_sdkmanager_temp_stat.stat.exists
- name: Workstation | Linux | Software | Android | Delete Archive - name: Workstation | Linux | Software | Android | Delete Archive
file: file:
@@ -237,7 +240,8 @@
- platform-tools - platform-tools
- emulator - emulator
become_user: "{{ user }}" become_user: "{{ user }}"
when: coding == true and not android_sdkmanager_final_stat.stat.exists when: coding == true
and not android_sdkmanager_final_stat.stat.exists
# These are safe to run multiple times, and uses the new `latest` version. # These are safe to run multiple times, and uses the new `latest` version.
- name: Workstation | Linux | Software | Android | Install | Required Modules - name: Workstation | Linux | Software | Android | Install | Required Modules
@@ -257,14 +261,17 @@
fi fi
loop: "{{ android_downloads_additional }}" loop: "{{ android_downloads_additional }}"
become_user: "{{ user }}" become_user: "{{ user }}"
when: coding == true and sdks == true when: coding == true
and sdks == true
# Remove extra downloads if system is not meant for full amount of testing. # Remove extra downloads if system is not meant for full amount of testing.
- name: Workstation | Linux | Software | Android | Uninstall | Additional Modules - name: Workstation | Linux | Software | Android | Uninstall | Additional Modules
shell: "yes | {{ android_sdkmanager_final }} --uninstall '{{ item }}' --sdk_root={{ android_sdk_location }}" shell: "yes | {{ android_sdkmanager_final }} --uninstall '{{ item }}' --sdk_root={{ android_sdk_location }}"
loop: "{{ android_downloads_additional }}" loop: "{{ android_downloads_additional }}"
become_user: "{{ user }}" become_user: "{{ user }}"
when: coding != true or sdks != true when: coding != true
or sdks != true
ignore_errors: yes
# Remove any versions which used to be part of this script and no longer used. # Remove any versions which used to be part of this script and no longer used.
- name: Workstation | Linux | Software | Android | Uninstall | Unused Modules - name: Workstation | Linux | Software | Android | Uninstall | Unused Modules
@@ -317,7 +324,9 @@
- "{{ user_root.home }}" - "{{ user_root.home }}"
- "{{ user_user.home }}" - "{{ user_user.home }}"
ignore_errors: yes ignore_errors: yes
when: coding == true and user_root.home != "" and user_user.home != "" when: coding == true
and user_root.home != ""
and user_user.home != ""
- name: Workstation | Linux | Software | Android | Modify PATH (.zshrc) - name: Workstation | Linux | Software | Android | Modify PATH (.zshrc)
blockinfile: blockinfile:
@@ -332,7 +341,9 @@
- "{{ user_root.home }}" - "{{ user_root.home }}"
- "{{ user_user.home }}" - "{{ user_user.home }}"
ignore_errors: yes ignore_errors: yes
when: coding == true and user_root.home != "" and user_user.home != "" when: coding == true
and user_root.home != ""
and user_user.home != ""
## Uninstall SDK ## ## Uninstall SDK ##
@@ -349,15 +360,15 @@
- name: Workstation | Linux | Software | Android | System Tools [Install] - name: Workstation | Linux | Software | Android | System Tools [Install]
package: package:
name: name:
- fastboot - "{{ android_fastboot }}"
- adb - "{{ android_adb }}"
state: present state: present
when: not coding == true when: not coding == true
- name: Workstation | Linux | Software | Android | System Tools [Remove] - name: Workstation | Linux | Software | Android | System Tools [Remove]
package: package:
name: name:
- fastboot - "{{ android_fastboot }}"
- adb - "{{ android_adb }}"
state: absent state: absent
when: coding == true when: coding == true
+22 -18
View File
@@ -10,6 +10,10 @@
# Then remove, autoremove, and purge flatpak executable with package manager. # Then remove, autoremove, and purge flatpak executable with package manager.
# Source: https://softhints.com/how-to-completely-remove-flatpak-linux-mint/ # Source: https://softhints.com/how-to-completely-remove-flatpak-linux-mint/
- name: Workstation | Linux | Flatpak Distro | Flatpak | Facts
set_fact:
flatpak_extension: "-flatpak"
## Flatpak Pre-reqs ## ## Flatpak Pre-reqs ##
- name: Workstation | Linux | Flatpak Distro | Flatpak | Install - name: Workstation | Linux | Flatpak Distro | Flatpak | Install
@@ -34,7 +38,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Arrays - name: Workstation | Linux | Flatpak Distro | Flatpak | Arrays
set_fact: set_fact:
flatpaks_generic: flatpaks_generic:
- { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" } - { app: "org.mozilla.firefox", name: "firefox", extra: "" }
- { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" } - { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" }
- { app: "org.signal.Signal", name: "signal", extra: "" } - { app: "org.signal.Signal", name: "signal", extra: "" }
- { app: "im.riot.Riot", name: "element", extra: "" } - { app: "im.riot.Riot", name: "element", extra: "" }
@@ -50,10 +54,10 @@
- { app: "app.organicmaps.desktop", name: "organic-maps", extra: "" } - { app: "app.organicmaps.desktop", name: "organic-maps", extra: "" }
- { app: "im.dino.Dino", name: "dino", extra: "" } - { app: "im.dino.Dino", name: "dino", extra: "" }
flatpaks_coding: flatpaks_coding:
- { app: "com.vscodium.codium", name: "codium-flatpak", extra: "" } - { app: "com.vscodium.codium", name: "codium", extra: "" }
- { app: "com.google.AndroidStudio", name: "android-studio", extra: "" } - { app: "com.google.AndroidStudio", name: "android-studio", extra: "" }
- { app: "io.dbeaver.DBeaverCommunity", name: "dbeaver", extra: "" } - { app: "io.dbeaver.DBeaverCommunity", name: "dbeaver", extra: "" }
- { app: "com.visualstudio.code-oss", name: "code-flatpak", extra: "" } - { app: "com.visualstudio.code-oss", name: "code", extra: "" }
- { app: "org.gnome.Boxes", name: "boxes", extra: "" } - { app: "org.gnome.Boxes", name: "boxes", extra: "" }
flatpaks_editing_video: flatpaks_editing_video:
- { app: "org.shotcut.Shotcut", name: "shotcut", extra: "" } - { app: "org.shotcut.Shotcut", name: "shotcut", extra: "" }
@@ -98,7 +102,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Generic | Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Generic | Executables
blockinfile: blockinfile:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
block: | block: |
{{ item.extra }} {{ flatpak_exec }} {{ item.app }} {{ item.extra }} {{ flatpak_exec }} {{ item.app }}
marker: '{mark}' marker: '{mark}'
@@ -111,7 +115,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Generic | Executable Permissions - name: Workstation | Linux | Flatpak Distro | Flatpak | Generic | Executable Permissions
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: file state: file
mode: '0755' mode: '0755'
loop: "{{ flatpaks_generic }}" loop: "{{ flatpaks_generic }}"
@@ -129,7 +133,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Coding | Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Coding | Executables
blockinfile: blockinfile:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
block: | block: |
{{ item.extra }} {{ flatpak_exec }} {{ item.app }} {{ item.extra }} {{ flatpak_exec }} {{ item.app }}
marker: '{mark}' marker: '{mark}'
@@ -143,7 +147,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Coding | Executable Permissions - name: Workstation | Linux | Flatpak Distro | Flatpak | Coding | Executable Permissions
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: file state: file
mode: '0755' mode: '0755'
loop: "{{ flatpaks_coding }}" loop: "{{ flatpaks_coding }}"
@@ -160,7 +164,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Coding | Remove Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Coding | Remove Executables
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: absent state: absent
loop: "{{ flatpaks_coding }}" loop: "{{ flatpaks_coding }}"
ignore_errors: yes ignore_errors: yes
@@ -179,7 +183,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Executables
blockinfile: blockinfile:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
block: | block: |
{{ item.extra }} {{ flatpak_exec }} {{ item.app }} {{ item.extra }} {{ flatpak_exec }} {{ item.app }}
marker: '{mark}' marker: '{mark}'
@@ -193,7 +197,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Executable Permissions - name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Executable Permissions
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: file state: file
mode: '0755' mode: '0755'
loop: "{{ flatpaks_editing_video }}" loop: "{{ flatpaks_editing_video }}"
@@ -210,7 +214,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Remove Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Video Editors | Remove Executables
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: absent state: absent
loop: "{{ flatpaks_editing_video }}" loop: "{{ flatpaks_editing_video }}"
ignore_errors: yes ignore_errors: yes
@@ -227,7 +231,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Executables
blockinfile: blockinfile:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
block: | block: |
{{ item.extra }} {{ flatpak_exec }} {{ item.app }} {{ item.extra }} {{ flatpak_exec }} {{ item.app }}
marker: '{mark}' marker: '{mark}'
@@ -241,7 +245,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Executable Permissions - name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Executable Permissions
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: file state: file
mode: '0755' mode: '0755'
loop: "{{ flatpaks_editing_audio }}" loop: "{{ flatpaks_editing_audio }}"
@@ -258,7 +262,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Remove Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Audio/Video Editors | Remove Executables
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: absent state: absent
loop: "{{ flatpaks_editing_audio }}" loop: "{{ flatpaks_editing_audio }}"
ignore_errors: yes ignore_errors: yes
@@ -277,7 +281,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Gaming | Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Gaming | Executables
blockinfile: blockinfile:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
block: | block: |
{{ item.extra }} {{ flatpak_exec }} {{ item.app }} {{ item.extra }} {{ flatpak_exec }} {{ item.app }}
marker: '{mark}' marker: '{mark}'
@@ -291,7 +295,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Gaming | Executable Permissions - name: Workstation | Linux | Flatpak Distro | Flatpak | Gaming | Executable Permissions
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: file state: file
mode: '0755' mode: '0755'
loop: "{{ flatpaks_gaming }}" loop: "{{ flatpaks_gaming }}"
@@ -308,7 +312,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Gaming | Remove Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Gaming | Remove Executables
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: absent state: absent
loop: "{{ flatpaks_gaming }}" loop: "{{ flatpaks_gaming }}"
ignore_errors: yes ignore_errors: yes
@@ -326,7 +330,7 @@
- name: Workstation | Linux | Flatpak Distro | Flatpak | Uninstalls | Remove Executables - name: Workstation | Linux | Flatpak Distro | Flatpak | Uninstalls | Remove Executables
file: file:
path: "{{ flatpak_exec_dir }}/{{ item.name }}" path: "{{ flatpak_exec_dir }}/{{ item.name }}{{ flatpak_extension }}"
state: absent state: absent
loop: "{{ flatpaks_remove }}" loop: "{{ flatpaks_remove }}"
ignore_errors: yes ignore_errors: yes
+24 -23
View File
@@ -3,25 +3,22 @@
## Facts ## ## Facts ##
- name: Workstation | Linux | Software | Flutter | Facts [1/4] - name: Workstation | Linux | Software | Flutter | Facts 1
set_fact: set_fact:
flutter_url: "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.2-stable.tar.xz" flutter_url: "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.2-stable.tar.xz"
flutter_download_file: "{{ user_user.home }}/Downloads/flutter.tar.xz" flutter_download_file: "{{ user_user.home }}/Downloads/flutter.tar.xz"
flutter_sdk_location: "{{ user_user.home }}/SDKs/Flutter" flutter_sdk_location: "{{ user_user.home }}/SDKs/Flutter"
flutter_report: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.sdk.flutter.txt" flutter_report: "{{ user_user.home }}/Reports/{{ ansible_hostname }}.sdk.flutter.txt"
when: coding == true
- name: Workstation | Linux | Software | Flutter | Facts [2/4] - name: Workstation | Linux | Software | Flutter | Facts 2
set_fact: set_fact:
flutter_bin_location: "{{ flutter_sdk_location }}/flutter/bin" flutter_bin_location: "{{ flutter_sdk_location }}/flutter/bin"
when: coding == true
- name: Workstation | Linux | Software | Flutter | Facts [3/4] - name: Workstation | Linux | Software | Flutter | Facts 3
set_fact: set_fact:
flutter: "{{ flutter_bin_location }}/flutter" flutter: "{{ flutter_bin_location }}/flutter"
when: coding == true
- name: Workstation | Linux | Software | Flutter | Facts [3/3] - name: Workstation | Linux | Software | Flutter | Facts 4
set_fact: set_fact:
flutter_report_commands: flutter_report_commands:
- "date > {{ flutter_report }}" - "date > {{ flutter_report }}"
@@ -29,7 +26,6 @@
- "date >> {{ flutter_report }}" - "date >> {{ flutter_report }}"
- "{{ flutter }} doctor -v >> {{ flutter_report }}" - "{{ flutter }} doctor -v >> {{ flutter_report }}"
- "date >> {{ flutter_report }}" - "date >> {{ flutter_report }}"
when: coding == true
## Checks ## ## Checks ##
@@ -40,7 +36,6 @@
get_checksum: false get_checksum: false
get_mime: false get_mime: false
register: flutter_sdk_stat register: flutter_sdk_stat
when: coding == true
- name: Workstation | Linux | Software | Flutter | Check Download Exists - name: Workstation | Linux | Software | Flutter | Check Download Exists
stat: stat:
@@ -49,7 +44,6 @@
get_checksum: false get_checksum: false
get_mime: false get_mime: false
register: flutter_download_stat register: flutter_download_stat
when: coding == true
## Packages ## ## Packages ##
@@ -59,9 +53,10 @@
- curl - curl
- git - git
- unzip - unzip
- xz-utils - "{{ xz }}"
- zip - zip
- libglu1-mesa - "{{ mesa }}"
- "{{ mesa_utils }}"
state: present state: present
when: coding == true when: coding == true
@@ -72,11 +67,11 @@
- clang - clang
- cmake - cmake
- git - git
- ninja-build - "{{ ninja }}"
- pkg-config - pkg-config
- libgtk-3-dev - "{{ gtk3 }}"
- liblzma-dev - "{{ xz_libs }}"
- libstdc++-12-dev - "{{ cpp }}"
state: present state: present
when: coding == true when: coding == true
@@ -84,10 +79,10 @@
- name: Workstation | Linux | Software | Flutter | Android App Dependencies - name: Workstation | Linux | Software | Flutter | Android App Dependencies
package: package:
name: name:
- libc6:amd64 - "{{ c_libs }}"
- libstdc++6 - "{{ cpp_libs }}"
- lib32z1 - "{{ z_libs }}"
- libbz2-1.0 - "{{ bzip }}"
state: present state: present
when: coding == true when: coding == true
@@ -121,12 +116,14 @@
group: "{{ user }}" group: "{{ user }}"
become_user: "{{ user }}" become_user: "{{ user }}"
when: coding == true and not flutter_sdk_stat.stat.exists when: coding == true
and not flutter_sdk_stat.stat.exists
- name: Workstation | Linux | Software | Flutter | Delete Archive - name: Workstation | Linux | Software | Flutter | Delete Archive
file: file:
path: "{{ flutter_download_file }}" path: "{{ flutter_download_file }}"
state: absent state: absent
when: coding == true
## Configure Environment ## ## Configure Environment ##
@@ -143,7 +140,9 @@
- "{{ user_root.home }}" - "{{ user_root.home }}"
- "{{ user_user.home }}" - "{{ user_user.home }}"
ignore_errors: yes ignore_errors: yes
when: coding == true and user_root.home != "" and user_user.home != "" when: coding == true
and user_root.home != ""
and user_user.home != ""
- name: Workstation | Linux | Software | Flutter | Modify PATH (.zshrc) - name: Workstation | Linux | Software | Flutter | Modify PATH (.zshrc)
blockinfile: blockinfile:
@@ -158,7 +157,9 @@
- "{{ user_root.home }}" - "{{ user_root.home }}"
- "{{ user_user.home }}" - "{{ user_user.home }}"
ignore_errors: yes ignore_errors: yes
when: coding == true and user_root.home != "" and user_user.home != "" when: coding == true
and user_root.home != ""
and user_user.home != ""
## Test SDK ## ## Test SDK ##
-122
View File
@@ -1,122 +0,0 @@
---
# 20260716 - Hyperling
# Add the setup for a simple i3 configuration. It´s pretty easy to use and
# functions super well. Very easy to get going and does not need a whole lot of
# work to change things around. Good alternative to DWM and so lightweight that
# it doesn´t even matter if both are installed!!
- name: Workstation | Linux | Software | i3 | Facts | General [1/2]
set_fact:
i3_config: "settings/i3.config"
i3_config_dir: "{{ user_user.home }}/.config/i3"
i3_package: i3
i3_light: light
i3_files: thunar
i3_term01: alacritty
i3_term02: kitty
i3_theming: lxappearance
i3_theme01: greybird-gtk-theme
i3_theme02: arc-theme
i3_theme03: numix-gtk-theme
- name: Workstation | Linux | Software | i3 | Facts | General [1/2]
set_fact:
i3_config_file: "{{ i3_config_dir }}/config"
#- name: Workstation | Linux | Software | i3 | Facts | TBD
# set_fact:
# i3_package: i3-wm
# when: ansible_distribution in ("TBD")
- name: Workstation | Linux | Software | i3 | Install
package:
name:
- "{{ i3_package }}"
- "{{ lightdm }}"
- "{{ i3_light }}"
- "{{ i3_files }}"
- "{{ i3_term01 }}"
- "{{ i3_term02 }}"
- "{{ i3_theming }}"
- "{{ i3_theme01 }}"
- "{{ i3_theme02 }}"
- "{{ i3_theme03 }}"
state: present
update_cache: yes
- name: Workstation | Linux | Software | i3 | Config | Create Dir
ansible.builtin.file:
path: "{{ i3_config_dir }}"
state: directory
mode: '0755'
owner: "{{ user }}"
group: "{{ user }}"
- name: Workstation | Linux | Software | i3 | Config | Copy File
copy:
src: "{{ i3_config }}"
dest: "{{ i3_config_file }}"
owner: "{{ user }}"
group: "{{ user }}"
mode: '0664'
# TBD: Automate getting the brightness keys to work.
#
# User is already part of the video group. Just need to configure udev rules.
#
# Get the folder name from here: `ls /sys/class/backlight/`
#
# That is your <DEVICE> for the following lines, which go here: /etc/udev/rules.d/backlight.rules
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<DEVICE>", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<DEVICE>", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
#
# So, for example:
# [18:12:20 root@device ~]# cat /etc/udev/rules.d/backlight.rules
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
# [18:12:21 root@device ~]#
#
# It then required a reboot. Doing the commands below was not enough.
#
# # sudo udevadm control --reload-rules
# # sudo udevadm trigger
#
- name: Workstation | Linux | Software | i3 | Light | Check Backlights
ansible.builtin.find:
paths: /sys/class/backlight
file_type: any # Options: file, directory, any
patterns: "*" # Wildcard patterns (e.g., "*.log")
recurse: no # Set to 'yes' for subdirectories
register: i3_light_device_check
#- name: Display var _ DELETEME
# ansible.builtin.debug:
# msg: "{{ i3_light_device_check }}"
- name: Workstation | Linux | Software | i3 | Light | Pull Backlight Name
set_fact:
i3_light_device_name: "{{ i3_light_device_check.files[0].path | basename }}"
#- name: Display var - DELETEME
# ansible.builtin.debug:
# msg: "{{ i3_light_device_name }}"
- name: Workstation | Linux | Software | i3 | Light | udev Rules | Create
ansible.builtin.copy:
dest: /etc/udev/rules.d/backlight.rules
content: |
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
owner: root
group: root
mode: '0644'
- name: Workstation | Linux | Software | i3 | Light | udev Rules | Reload
command: "{{ item }}"
loop:
- udevadm control --reload-rules
- udevadm trigger
#- name: FAIL - DELETEME
# meta: end_play
+22 -5
View File
@@ -36,13 +36,31 @@
name: name:
- vlc - vlc
- "{{ appimagelauncher }}" - "{{ appimagelauncher }}"
- "{{ evolution }}"
- "{{ evolution }}*"
- gparted - gparted
- hugo - hugo
- wireless-tools - "{{ firefox }}"
- "{{ firefox_esr }}"
- "{{ wireless_tools }}"
- "{{ notify_send }}"
- "{{ fyi }}"
- "{{ gnome_boxes }}"
state: present state: present
- name: Workstation | Linux | Software | Packages | Extra For Liberated Init Systems
package:
name:
- "{{ dunst }}"
state: present
when: ansible_service_mgr != "systemd"
- name: Workstation | Linux | Software | Packages | Install From AUR
shell: "yay -Qs {{ item }} || yay --noconfirm -S {{ item }}"
loop:
- appimagelauncher
when: ansible_pkg_mgr == "pacman"
become_user: "{{ aur_user }}"
ignore_errors: yes
- name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool) - name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool)
package: package:
name: name:
@@ -56,9 +74,8 @@
- name: Workstation | Linux | Software | Packages | Remove Applications - name: Workstation | Linux | Software | Packages | Remove Applications
package: package:
name: name:
- "{{ firefox }}"
#- "{{ firefox_esr }}"
- "{{ thunderbird }}" - "{{ thunderbird }}"
- "{{ evolution }}"
- steam - steam
- vscode - vscode
- code - code
+29 -3
View File
@@ -7,16 +7,24 @@
- name: Workstation | Linux | Software | TLP | Facts - name: Workstation | Linux | Software | TLP | Facts
set_fact: set_fact:
tlp: "tlp" tlp_package: "tlp"
tlp_rdw: "tlp-rdw" tlp_rdw: "tlp-rdw"
tlp_smart: "smartmontools" tlp_smart: "smartmontools"
tlp_config: "/etc/tlp.conf" tlp_config: "/etc/tlp.conf"
tlp_service: "tlp" tlp_service: "tlp"
tlp_run_script: "tlp"
ppd_package: "power-profiles-daemon" ppd_package: "power-profiles-daemon"
ppd_service: "power-profiles-daemon" ppd_service: "power-profiles-daemon"
acf_package: "auto-cpufreq" acf_package: "auto-cpufreq"
acf_service: "auto-cpufreq" acf_service: "auto-cpufreq"
- name: Workstation | Linux | Software | TLP | Facts (Artix)
set_fact:
ppd_package: "power-profiles-daemon power-profiles-daemon-runit"
tlp_run_script: tlp-runit
when: ansible_pkg_mgr == "pacman"
and ansible_service_mgr == "runit"
## Conflicts ## ## Conflicts ##
#- name: Workstation | Linux | Software | TLP | Conflicts | Disable #- name: Workstation | Linux | Software | TLP | Conflicts | Disable
@@ -41,9 +49,10 @@
- name: Workstation | Linux | Software | TLP | Install - name: Workstation | Linux | Software | TLP | Install
package: package:
name: name:
- "{{ tlp }}" - "{{ tlp_package }}"
- "{{ tlp_rdw }}" - "{{ tlp_rdw }}"
- "{{ tlp_smart }}" - "{{ tlp_smart }}"
- "{{ tlp_run_script }}"
update_cache: yes update_cache: yes
## Configuration ## ## Configuration ##
@@ -66,6 +75,9 @@
create: yes create: yes
backup: yes backup: yes
loop: loop:
- { "key": '^[\#]?TLP_ENABLE', "value": 'TLP_ENABLE=1'}
- { "key": '^[\#]?TLP_DEFAULT_MODE', "value": 'TLP_DEFAULT_MODE=SAV'}
## Device Controls ##
- { "key": '^[\#]?DEVICES_TO_DISABLE_ON_STARTUP', "value": 'DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wwan"'} - { "key": '^[\#]?DEVICES_TO_DISABLE_ON_STARTUP', "value": 'DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wwan"'}
# Ensure these stay commented, once the device is booted the user is in control. # # Ensure these stay commented, once the device is booted the user is in control. #
- { "key": '^[\#]?DEVICES_TO_ENABLE_ON_STARTUP', "value": '#DEVICES_TO_ENABLE_ON_STARTUP=""'} - { "key": '^[\#]?DEVICES_TO_ENABLE_ON_STARTUP', "value": '#DEVICES_TO_ENABLE_ON_STARTUP=""'}
@@ -76,6 +88,12 @@
- { "key": '^[\#]?STOP_CHARGE_THRESH_BAT0', "value": '{{ "" if battery else "#" }}STOP_CHARGE_THRESH_BAT0=80'} - { "key": '^[\#]?STOP_CHARGE_THRESH_BAT0', "value": '{{ "" if battery else "#" }}STOP_CHARGE_THRESH_BAT0=80'}
- { "key": '^[\#]?START_CHARGE_THRESH_BAT1', "value": '{{ "" if battery else "#" }}START_CHARGE_THRESH_BAT1=60'} - { "key": '^[\#]?START_CHARGE_THRESH_BAT1', "value": '{{ "" if battery else "#" }}START_CHARGE_THRESH_BAT1=60'}
- { "key": '^[\#]?STOP_CHARGE_THRESH_BAT1', "value": '{{ "" if battery else "#" }}STOP_CHARGE_THRESH_BAT1=80'} - { "key": '^[\#]?STOP_CHARGE_THRESH_BAT1', "value": '{{ "" if battery else "#" }}STOP_CHARGE_THRESH_BAT1=80'}
# Do not let the WiFi device go DORMANT.
- { "key": '^[\#]?WIFI_PWR_ON_AC', "value": 'WIFI_PWR_ON_AC=off'}
- { "key": '^[\#]?WIFI_PWR_ON_BAT', "value": 'WIFI_PWR_ON_BAT=off'}
# Do not let USB devices go dormant.
- { "key": '^[\#]?USB_AUTOSUSPEND', "value": 'USB_AUTOSUSPEND=0'}
## Enable + Start ## ## Enable + Start ##
@@ -86,4 +104,12 @@
name: "{{ tlp_service }}" name: "{{ tlp_service }}"
state: started state: started
enabled: true enabled: true
when: ansible_service_mgr != "runit" # TBD: Figure out how to do this on runit. when: ansible_service_mgr not in ("runit")
- name: Workstation | Linux | Software | TLP | Enable + Start (runit)
shell: |
if [[ ! -e {{ runit_service_dir }}/tlp ]]; then
ln -s {{ runit_script_dir }}/tlp {{ runit_service_dir }}/tlp
fi
when: ansible_service_mgr == "runit"
+16
View File
@@ -26,6 +26,14 @@
- mullvad-vpn - mullvad-vpn
state: present state: present
- name: Workstation | Software | VPN | Install (Artix, runit)
package:
name:
- mullvad-vpn-runit
state: present
when: ansible_distribution == "Artix"
and ansible_service_mgr == "runit"
- name: Workstation | Software | VPN | Mullvad | Symlink GUI - name: Workstation | Software | VPN | Mullvad | Symlink GUI
ansible.builtin.file: ansible.builtin.file:
src: "/opt/Mullvad VPN/mullvad-vpn" src: "/opt/Mullvad VPN/mullvad-vpn"
@@ -33,6 +41,14 @@
state: link state: link
force: true force: true
- name: Workstation | Software | VPN | Mullvad | Enable (Artix, runit)
ansible.builtin.file:
src: "/etc/runit/sv/mullvad-daemon"
dest: "/run/runit/services/mullvad"
state: link
force: true
when: ansible_service_mgr == "runit"
when: ansible_distribution in ("Debian", "Ubuntu", "Arch", "Artix") when: ansible_distribution in ("Debian", "Ubuntu", "Arch", "Artix")
# TBD: VPNs for distros like Devuan. # TBD: VPNs for distros like Devuan.
+1 -1
View File
@@ -442,7 +442,7 @@
blockinfile: blockinfile:
path: "{{ user_user.home }}/{{ item }}" path: "{{ user_user.home }}/{{ item }}"
block: | block: |
DELETEME # TBD: No longer used. Remove in 2027.
marker: '# {mark} MANAGED BY ANSIBLE | NixOS GNOME Settings' marker: '# {mark} MANAGED BY ANSIBLE | NixOS GNOME Settings'
state: present state: present
create: no create: no
+152
View File
@@ -0,0 +1,152 @@
---
# 20260716 - Hyperling
# Add the setup for a simple i3 configuration. It´s pretty easy to use and
# functions super well. Very easy to get going and does not need a whole lot of
# work to change things around. Good alternative to DWM and so lightweight that
# it doesn´t even matter if both are installed!!
- name: Workstation | Shared | Software | i3 | i3 | Facts 01
set_fact:
i3_config: "settings/i3.config"
i3_config_dir: "{{ user_user.home }}/.config/i3"
i3_package: i3
i3_light: light
i3_files: thunar
i3_term01: alacritty
i3_term02: kitty
i3_theming: lxappearance
i3_theme01: greybird-gtk-theme
i3_theme02: arc-theme
i3_theme03: numix-gtk-theme
- name: Workstation | Shared | Software | i3 | i3 | Facts 02
set_fact:
i3_config_file: "{{ i3_config_dir }}/config"
- name: Workstation | Shared | Software | i3 | i3 | Facts | non-apt
set_fact:
i3_theme01: htop
i3_theme02: htop
i3_theme03: htop
when: ansible_pkg_mgr != "apt"
- name: Workstation | Shared | Software | i3 | i3 | Facts | yay
set_fact:
i3_yay_packages:
- greybird-gtk-theme
#- enlightenment-arc-theme
- numix-gtk-theme
when: ansible_pkg_mgr == "pacman"
#- name: Workstation | Shared | Software | i3 | i3 | Facts | TBD
# set_fact:
# i3_package: i3-wm
# when: ansible_distribution in ("TBD")
- name: Workstation | Shared | Software | i3 | i3 | Install
package:
name:
- "{{ i3_package }}"
- "{{ lightdm }}"
- "{{ i3_light }}"
- "{{ i3_files }}"
- "{{ i3_term01 }}"
- "{{ i3_term02 }}"
- "{{ i3_theming }}"
- "{{ i3_theme01 }}"
- "{{ i3_theme02 }}"
- "{{ i3_theme03 }}"
state: present
update_cache: yes
- name: Workstation | Shared | Software | i3 | i3 | Install (yay)
shell: "yay -Qs {{ item }} || yay --noconfirm -S {{ item }}"
loop: "{{ i3_yay_packages }}"
when: ansible_pkg_mgr == "pacman"
become_user: "{{ aur_user }}"
ignore_errors: true
- name: Workstation | Shared | Software | i3 | i3 | Config | Create Dir
ansible.builtin.file:
path: "{{ i3_config_dir }}"
state: directory
mode: '0755'
owner: "{{ user }}"
group: "{{ user }}"
- name: Workstation | Shared | Software | i3 | i3 | Config | Copy File
copy:
src: "{{ i3_config }}"
dest: "{{ i3_config_file }}"
owner: "{{ user }}"
group: "{{ user }}"
mode: '0664'
# TBD: Automate getting the brightness keys to work.
#
# User is already part of the video group. Just need to configure udev rules.
#
# Get the folder name from here: `ls /sys/class/backlight/`
#
# That is your <DEVICE> for the following lines, which go here: /etc/udev/rules.d/backlight.rules
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<DEVICE>", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<DEVICE>", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
#
# So, for example:
# [18:12:20 root@device ~]# cat /etc/udev/rules.d/backlight.rules
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
# [18:12:21 root@device ~]#
#
# It then required a reboot. Doing the commands below was not enough.
#
# # sudo udevadm control --reload-rules
# # sudo udevadm trigger
#
- name: Workstation | Shared | Software | i3 | i3 | Light (Linux Only)
block:
- name: Workstation | Shared | Software | i3 | i3 | Light | Check Backlights
ansible.builtin.find:
paths: /sys/class/backlight
file_type: any # Options: file, directory, any
patterns: "*" # Wildcard patterns (e.g., "*.log")
recurse: no # Set to 'yes' for subdirectories
register: i3_light_device_check
ignore_errors: yes
#- name: Display var _ DELETEME
# ansible.builtin.debug:
# msg: "{{ i3_light_device_check }}"
- name: Workstation | Shared | Software | i3 | i3 | Light | Pull Backlight Name
set_fact:
i3_light_device_name: "{{ i3_light_device_check.files[0].path | basename }}"
ignore_errors: yes
#- name: Display var - DELETEME
# ansible.builtin.debug:
# msg: "{{ i3_light_device_name }}"
- name: Workstation | Shared | Software | i3 | i3 | Light | udev Rules | Create
ansible.builtin.copy:
dest: /etc/udev/rules.d/backlight.rules
content: |
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
owner: root
group: root
mode: '0644'
ignore_errors: yes
- name: Workstation | Shared | Software | i3 | i3 | Light | udev Rules | Reload
command: "{{ item }}"
loop:
- udevadm control --reload-rules
- udevadm trigger
when: ansible_system == "Linux"
#- name: FAIL - DELETEME
# meta: end_play