Compare commits
162 Commits
e3f2d42017
...
prod
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e46cb16a5 | |||
| 785db7e893 | |||
| 94431dff43 | |||
| dcf4b3d451 | |||
| 58f5f13b28 | |||
| fe022d7a9c | |||
| 0ef5e0cc6a | |||
| ccabad9c30 | |||
| f83fe61296 | |||
| da9c34a9da | |||
| 8c3c3fb381 | |||
| d617334a54 | |||
| 52c6dba409 | |||
| 21d69f230b | |||
| 3a815d319c | |||
| 94b6db2000 | |||
| 564485145e | |||
| 814451fa44 | |||
| bd9460c8bb | |||
| 55a531f1b4 | |||
| c2f910aabc | |||
| ccfa27fcaf | |||
| 3c6c7de5e1 | |||
| 24c5a2973f | |||
| 262cfa002e | |||
| 4fe8daf347 | |||
| ea589d09b2 | |||
| dd0412d821 | |||
| 14a0d21633 | |||
| 0d42c2419c | |||
| ccd87b92bb | |||
| 82e32c0f95 | |||
| 73dfdce734 | |||
| bf57faaac5 | |||
| 9406d4aca2 | |||
| 4cf848d4a9 | |||
| 09f6a1e96b | |||
| 2d5fa52294 | |||
| d54131a1b2 | |||
| 8a79822ae5 | |||
| c66938f738 | |||
| be849d9c70 | |||
| b69be78382 | |||
| 845b042d21 | |||
| 42b88fb8bd | |||
| e98ad94a90 | |||
| dfb72122a0 | |||
| 671d21b9d3 | |||
| edec84400e | |||
| b4eeff4386 | |||
| 331cf32737 | |||
| 9fb39f8503 | |||
| b1cc1473db | |||
| d0580925ac | |||
| 5732c36d1d | |||
| 29435e43e2 | |||
| b051bce767 | |||
| fa732599fe | |||
| bed26990bd | |||
| bcfc716b46 | |||
| 33a645fea0 | |||
| 8e0cc7fa45 | |||
| 13459f8f4b | |||
| 5155952dc7 | |||
| 19970515ca | |||
| 1aaf64404f | |||
| 65a0d8b670 | |||
| b6b0e620cf | |||
| a10480c692 | |||
| 00218a447f | |||
| b9d0e31631 | |||
| 5435da309a | |||
| 5ebfa7e8bb | |||
| 712b0b8ffe | |||
| 99cf761528 | |||
| dbb9528f26 | |||
| 0122f086b2 | |||
| 0b878674d3 | |||
| 6e86149f59 | |||
| a2ec622582 | |||
| ab478153ec | |||
| caa7bd9285 | |||
| 19ce3dde3b | |||
| 1bd66a0df9 | |||
| 73a6ea092b | |||
| 85c2a4d4b1 | |||
| 063928ebb8 | |||
| 1679eb2522 | |||
| 65cf20f932 | |||
| a1935588a4 | |||
| 44060a6d1d | |||
| f756182d12 | |||
| b41a381385 | |||
| faddea7492 | |||
| a85cbf277f | |||
| 15a79578e6 | |||
| 57e8824d16 | |||
| f46b0bad96 | |||
| f76b635e40 | |||
| 0fc27e94b0 | |||
| 08fbce5f44 | |||
| 1ea368184d | |||
| 5710f284ba | |||
| b4e8bf6f15 | |||
| e0395dda04 | |||
| 625f4c899f | |||
| f324589c65 | |||
| 3fe18ef9dc | |||
| 57f5473c2f | |||
| e517a8c3e8 | |||
| 751cbbc055 | |||
| 5175b7ff0c | |||
| 6d0b0f52f5 | |||
| 203d8a1ef4 | |||
| c9370553fb | |||
| e3e9418a12 | |||
| 398541fa54 | |||
| e031be406e | |||
| 4c0639e862 | |||
| 07047f140e | |||
| 1493d76352 | |||
| b0a7a03542 | |||
| b8b7ca1851 | |||
| 184ec96395 | |||
| 4adc2d2e7e | |||
| fb4386b418 | |||
| ed2b678228 | |||
| 4ce049b3ea | |||
| d48f6d1572 | |||
| a0582c7483 | |||
| 1917b087c9 | |||
| c2b32c6d3e | |||
| aa0522ee67 | |||
| 04d9498c72 | |||
| 481f8fa5d1 | |||
| a2edee0857 | |||
| a9352773a7 | |||
| 3b1502f6c1 | |||
| 4dba89dba2 | |||
| 69bf1c25fb | |||
| bf4b6951ac | |||
| de29d33042 | |||
| 2de2fb1966 | |||
| 99966ea0c4 | |||
| 90d4a22431 | |||
| 28829018cd | |||
| 62b59f4e8a | |||
| 9010a7dc7c | |||
| e8eb5c68a7 | |||
| 0887a3bdf0 | |||
| 3861f2fad4 | |||
| d8d5f001f2 | |||
| 91996885e9 | |||
| a8d0e2c7bb | |||
| ae20dec6f1 | |||
| 88717f745b | |||
| 1972cd4b9e | |||
| fbc8e62872 | |||
| dac6240b92 | |||
| 3faa49c290 | |||
| d2356a5780 | |||
| 862b36d537 |
@@ -19,15 +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.
|
||||||
|
|
||||||
|
#### Devuan (`runit`)
|
||||||
|
|
||||||
|
2026-07-30: Distribution has beed added with a few caveats.
|
||||||
|
|
||||||
|
- `runit` is the currently the expected init system (not OpenRC or SysVInit)
|
||||||
|
- Mullvad needs installed via .dev file [TBD: link here]().
|
||||||
|
|
||||||
### 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
|
||||||
|
|
||||||
@@ -88,14 +105,14 @@ terrible while updating. Ubuntu Rolling Rhino filled the gap.
|
|||||||
Workstation: 100%,
|
Workstation: 100%,
|
||||||
Server: 100%
|
Server: 100%
|
||||||
|
|
||||||
## Suse Family
|
### Suse Family
|
||||||
|
|
||||||
### openSUSE Tumbleweed v2022-02-17
|
#### openSUSE Tumbleweed v2022-02-17
|
||||||
|
|
||||||
Generic: 100%,
|
Generic: 100%,
|
||||||
Workstation: 100%
|
Workstation: 100%
|
||||||
|
|
||||||
### openSUSE Leap 15.4
|
#### openSUSE Leap 15.4
|
||||||
|
|
||||||
Generic: 100%
|
Generic: 100%
|
||||||
Workstation: Currently failing at `[Workstation | Linux | Flatpak Distro | Package Manager | Install From Repo]` with message `Problem: nothing provides libedataserver-1.2.so.24 needed by the to be installed evolution-data-server-32bit-3.34.4-3.3.1.x86_64`.
|
Workstation: Currently failing at `[Workstation | Linux | Flatpak Distro | Package Manager | Install From Repo]` with message `Problem: nothing provides libedataserver-1.2.so.24 needed by the to be installed evolution-data-server-32bit-3.34.4-3.3.1.x86_64`.
|
||||||
@@ -127,6 +144,8 @@ after update problems due to a long computer hiatus.
|
|||||||
|
|
||||||
Specifically for the Pinephone.
|
Specifically for the Pinephone.
|
||||||
|
|
||||||
|
## Unsupported
|
||||||
|
|
||||||
## Future Goals
|
## Future Goals
|
||||||
|
|
||||||
Eventually some of the scripts and install files will be put into the files
|
Eventually some of the scripts and install files will be put into the files
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -10,9 +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
|
||||||
|
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:
|
||||||
@@ -31,11 +37,6 @@
|
|||||||
dig: dnsutils
|
dig: dnsutils
|
||||||
when: ansible_pkg_mgr == "apt"
|
when: ansible_pkg_mgr == "apt"
|
||||||
|
|
||||||
- name: General | Facts | Package | apt | Debian Trixie
|
|
||||||
set_fact:
|
|
||||||
neofetch: fastfetch
|
|
||||||
when: ansible_pkg_mgr == "apt" and ansible_distribution_release == "trixie"
|
|
||||||
|
|
||||||
- name: General | Facts | Package | pacman
|
- name: General | Facts | Package | pacman
|
||||||
set_fact:
|
set_fact:
|
||||||
locate: mlocate
|
locate: mlocate
|
||||||
@@ -44,6 +45,8 @@
|
|||||||
microcode_intel: intel-ucode
|
microcode_intel: intel-ucode
|
||||||
cron: cronie
|
cron: cronie
|
||||||
encfs: encfs
|
encfs: encfs
|
||||||
|
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
|
||||||
@@ -58,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")
|
||||||
@@ -72,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
|
||||||
@@ -82,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"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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,13 +83,12 @@
|
|||||||
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
|
|
||||||
set_fact:
|
set_fact:
|
||||||
flatpak_distro: true
|
flatpak_distro: true
|
||||||
dmenu: suckless-tools
|
dmenu: suckless-tools
|
||||||
when: ansible_distribution == "Debian"
|
firefox: firefox-esr
|
||||||
|
when: ansible_distribution in ("Debian", "Devuan")
|
||||||
|
|
||||||
- name: Workstation | Facts | Package | Mint
|
- name: Workstation | Facts | Package | Mint
|
||||||
set_fact:
|
set_fact:
|
||||||
@@ -56,21 +96,29 @@
|
|||||||
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 | Arch + Manjaro
|
- 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
|
||||||
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.
|
||||||
when: ansible_distribution == "Archlinux"
|
font_awesome: ttf-font-awesome
|
||||||
|
wireless_tools: wireless_tools
|
||||||
|
nfs: nfs-utils
|
||||||
|
when: ansible_pkg_mgr == "pacman"
|
||||||
|
|
||||||
|
|
||||||
- name: Workstation | Facts | Package | FreeBSD
|
- name: Workstation | Facts | Package | FreeBSD
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ function volume-usage {
|
|||||||
EOF
|
EOF
|
||||||
return $1
|
return $1
|
||||||
}
|
}
|
||||||
alias volume-help="volume-usage"
|
#alias volume-help="volume-usage"
|
||||||
alias vol-h="volume-help"
|
#alias vol-h="volume-help"
|
||||||
|
|
||||||
function volume {
|
function volume {
|
||||||
|
|
||||||
@@ -135,9 +135,9 @@ function volume {
|
|||||||
echo "$0 $1 $2"
|
echo "$0 $1 $2"
|
||||||
return 7
|
return 7
|
||||||
}
|
}
|
||||||
alias vol="volume "
|
#alias vol="volume "
|
||||||
alias vol-="volume - "
|
#alias vol-="volume - "
|
||||||
alias vol+="volume + "
|
#alias vol+="volume + "
|
||||||
|
|
||||||
function volume-display {
|
function volume-display {
|
||||||
if [[ "$1" == "-v" || "$1" == "--verbose" || "$1" == "verbose" ]]; then
|
if [[ "$1" == "-v" || "$1" == "--verbose" || "$1" == "verbose" ]]; then
|
||||||
@@ -146,7 +146,7 @@ function volume-display {
|
|||||||
amixer sget Master | egrep -o '[0-9]{1,3}%' | head -n 1
|
amixer sget Master | egrep -o '[0-9]{1,3}%' | head -n 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
alias "vol-d"="volume-display"
|
#alias "vol-d"="volume-display"
|
||||||
|
|
||||||
## TBD/TODO ##
|
## TBD/TODO ##
|
||||||
|
|
||||||
|
|||||||
@@ -182,8 +182,8 @@ $search "$location" | sort | while read media; do
|
|||||||
|
|
||||||
if [[ -n "$delete" ]]; then
|
if [[ -n "$delete" ]]; then
|
||||||
echo -n " DELETE: "
|
echo -n " DELETE: "
|
||||||
if [[ -d ~/TRASH ]]; then
|
if [[ -d $HOME/TRASH ]]; then
|
||||||
mv -v "$media" ~/TRASH/
|
mv -v "$media" $HOME/TRASH/
|
||||||
else
|
else
|
||||||
rm -v "$media"
|
rm -v "$media"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -215,8 +215,8 @@ $search "$location" | sort | while read image; do
|
|||||||
|
|
||||||
if [[ -n "$delete" ]]; then
|
if [[ -n "$delete" ]]; then
|
||||||
echo -n " DELETE: "
|
echo -n " DELETE: "
|
||||||
if [[ -d ~/TRASH ]]; then
|
if [[ -d $HOME/TRASH ]]; then
|
||||||
mv -v "$image" ~/TRASH/
|
mv -v "$image" $HOME/TRASH/
|
||||||
else
|
else
|
||||||
rm -v "$image"
|
rm -v "$image"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -225,8 +225,8 @@ $search_command "$input" | sort | while read file; do
|
|||||||
if [[ -e "$newfile" || -e "$new_video_clean" ]]; then
|
if [[ -e "$newfile" || -e "$new_video_clean" ]]; then
|
||||||
if [[ "$force" == "Y" ]]; then
|
if [[ "$force" == "Y" ]]; then
|
||||||
echo "FORCE: Removing '$newfile'."
|
echo "FORCE: Removing '$newfile'."
|
||||||
if [[ -d ~/TRASH ]]; then
|
if [[ -d $HOME/TRASH ]]; then
|
||||||
mv -v "$newfile" "$new_video_clean" ~/TRASH/ 2>/dev/null
|
mv -v "$newfile" "$new_video_clean" $HOME/TRASH/ 2>/dev/null
|
||||||
else
|
else
|
||||||
rm -v "$newfile" "$new_video_clean" 2>/dev/null
|
rm -v "$newfile" "$new_video_clean" 2>/dev/null
|
||||||
fi
|
fi
|
||||||
@@ -279,8 +279,8 @@ $search_command "$input" | sort | while read file; do
|
|||||||
|
|
||||||
if [[ -n "$delete" ]]; then
|
if [[ -n "$delete" ]]; then
|
||||||
echo -n "Original has been deleted: "
|
echo -n "Original has been deleted: "
|
||||||
if [[ -d ~/TRASH ]]; then
|
if [[ -d $HOME/TRASH ]]; then
|
||||||
mv -v "$file" ~/TRASH/
|
mv -v "$file" $HOME/TRASH/
|
||||||
else
|
else
|
||||||
rm -v "$file"
|
rm -v "$file"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||||
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
||||||
|
|
||||||
nixos_working_dir=~/nixos-config-deleteme
|
nixos_working_dir=$HOME/nixos-config-deleteme
|
||||||
nixos_working_exe=activate.sh
|
nixos_working_exe=activate.sh
|
||||||
|
|
||||||
## Functions ##
|
## Functions ##
|
||||||
|
|||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source /usr/local/bin/volume.function
|
||||||
|
|
||||||
|
volume $@
|
||||||
+151
-51
@@ -9,7 +9,12 @@
|
|||||||
#
|
#
|
||||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
# Use the `xev` command to see the name and code of a keyboard key.
|
||||||
|
|
||||||
set $mod Mod4
|
set $mod Mod4
|
||||||
|
set $alt Mod1
|
||||||
|
set $ctrl Control
|
||||||
|
set $shift Shift
|
||||||
|
|
||||||
# Font for window titles. Will also be used by the bar unless a different font
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
# is used in the bar {} block below.
|
# is used in the bar {} block below.
|
||||||
@@ -36,10 +41,10 @@ exec --no-startup-id nm-applet
|
|||||||
|
|
||||||
# Use pactl to adjust volume in PulseAudio.
|
# Use pactl to adjust volume in PulseAudio.
|
||||||
set $refresh_i3status killall -SIGUSR1 i3status
|
set $refresh_i3status killall -SIGUSR1 i3status
|
||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||||
|
|
||||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
floating_modifier $mod
|
floating_modifier $mod
|
||||||
@@ -49,8 +54,8 @@ floating_modifier $mod
|
|||||||
tiling_drag modifier titlebar
|
tiling_drag modifier titlebar
|
||||||
|
|
||||||
# start a terminal
|
# start a terminal
|
||||||
bindsym $mod+Return exec st
|
bindsym $mod+Return exec i3-sensible-terminal
|
||||||
# Used to be i3-sensible-terminal, but was calling gnome-terminal :c
|
#bindsym $mod+Return exec st
|
||||||
|
|
||||||
# kill focused window
|
# kill focused window
|
||||||
#bindsym $mod+Shift+q kill
|
#bindsym $mod+Shift+q kill
|
||||||
@@ -67,10 +72,10 @@ bindsym $mod+space exec --no-startup-id dmenu_run
|
|||||||
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
|
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
|
||||||
|
|
||||||
# change focus
|
# change focus
|
||||||
bindsym $mod+j focus left
|
#bindsym $mod+j focus left
|
||||||
bindsym $mod+k focus down
|
#bindsym $mod+k focus down
|
||||||
bindsym $mod+l focus up
|
#bindsym $mod+l focus up
|
||||||
bindsym $mod+semicolon focus right
|
#bindsym $mod+semicolon focus right
|
||||||
|
|
||||||
# alternatively, you can use the cursor keys:
|
# alternatively, you can use the cursor keys:
|
||||||
bindsym $mod+Left focus left
|
bindsym $mod+Left focus left
|
||||||
@@ -79,10 +84,10 @@ bindsym $mod+Up focus up
|
|||||||
bindsym $mod+Right focus right
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
# move focused window
|
# move focused window
|
||||||
bindsym $mod+Shift+j move left
|
#bindsym $mod+Shift+j move left
|
||||||
bindsym $mod+Shift+k move down
|
#bindsym $mod+Shift+k move down
|
||||||
bindsym $mod+Shift+l move up
|
#bindsym $mod+Shift+l move up
|
||||||
bindsym $mod+Shift+semicolon move right
|
#bindsym $mod+Shift+semicolon move right
|
||||||
|
|
||||||
# alternatively, you can use the cursor keys:
|
# alternatively, you can use the cursor keys:
|
||||||
bindsym $mod+Shift+Left move left
|
bindsym $mod+Shift+Left move left
|
||||||
@@ -116,19 +121,71 @@ bindsym $mod+a focus parent
|
|||||||
# focus the child container
|
# focus the child container
|
||||||
#bindsym $mod+d focus child
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
|
||||||
|
## Extra Program Shortcuts ##
|
||||||
|
|
||||||
|
# Theming.
|
||||||
|
bindsym $mod+t exec lxappearance
|
||||||
|
|
||||||
|
# Manage files.
|
||||||
|
bindsym $mod+m exec thunar
|
||||||
|
|
||||||
|
# Internet.
|
||||||
|
bindsym $mod+i exec "firefox || firefox-esr || firefox-flatpak"
|
||||||
|
|
||||||
|
# Code.
|
||||||
|
bindsym $mod+c exec codium-flatpak
|
||||||
|
|
||||||
|
|
||||||
|
## Brightness ##
|
||||||
# Use the bracket keys to change the brightness.
|
# Use the bracket keys to change the brightness.
|
||||||
# light requires sudo privileges unless video group and udev are configured.
|
# light requires sudo privileges unless video group and udev are configured.
|
||||||
bindsym $mod+bracketleft exec "light -U 5; notify-send 'Brightness Down' $(light -G)"
|
bindsym $mod+bracketleft exec --no-startup-id "light -U 05 && notify-send 'Brightness - ' $(light -G)"
|
||||||
bindsym $mod+bracketright exec "light -A 5; notify-send 'Brightness Up' $(light -G)"
|
bindsym $mod+bracketright exec --no-startup-id "light -A 05 && notify-send 'Brightness + ' $(light -G)"
|
||||||
bindsym shift+$mod+bracketleft exec "light -U 25; notify-send 'Brightness Down' $(light -G)"
|
bindsym $shift+$mod+bracketleft exec --no-startup-id "light -U 20 && notify-send 'Brightness ---' $(light -G)"
|
||||||
bindsym shift+$mod+bracketright exec "light -A 25; notify-send 'Brightness Up' $(light -G)"
|
bindsym $shift+$mod+bracketright exec --no-startup-id "light -A 20 && notify-send 'Brightness +++' $(light -G)"
|
||||||
|
|
||||||
bindsym XF86MonBrightnessUp exec "light -A 5; notify-send 'Brightness Up' $(light -G)"
|
# Also get the actual brightness keys to work!!
|
||||||
bindsym XF86MonBrightnessDown exec "light -U 5; notify-send 'Brightness Down' $(light -G)"
|
bindsym XF86MonBrightnessUp exec --no-startup-id "light -A 05 && notify-send 'Brightness + ' $(light -G)"
|
||||||
bindsym shift+XF86MonBrightnessUp exec l"ight -A 25; notify-send 'Brightness Up' $(light -G)"
|
bindsym XF86MonBrightnessDown exec --no-startup-id "light -U 05 && notify-send 'Brightness - ' $(light -G)"
|
||||||
bindsym shift+XF86MonBrightnessDown exec l"ight -U 25; notify-send 'Brightness Down' $(light -G)"
|
bindsym $shift+XF86MonBrightnessUp exec --no-startup-id "light -A 20 && notify-send 'Brightness +++' $(light -G)"
|
||||||
|
bindsym $shift+XF86MonBrightnessDown exec --no-startup-id "light -U 20 && notify-send 'Brightness ---' $(light -G)"
|
||||||
|
|
||||||
|
|
||||||
|
## Volume ##
|
||||||
|
# The volume function is from https://git.hyperling.com/me/env-ansible
|
||||||
|
|
||||||
# Use the comma and period keys to change volume.
|
# Use the comma and period keys to change volume.
|
||||||
|
bindsym $mod+comma exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -05 && notify-send "Volume - " $(volume)'
|
||||||
|
bindsym $mod+period exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +05 && notify-send "Volume + " $(volume)'
|
||||||
|
bindsym $shift+$mod+comma exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -25 && notify-send "Volume ---" $(volume)'
|
||||||
|
bindsym $shift+$mod+period exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +25 && notify-send "Volume +++" $(volume)'
|
||||||
|
|
||||||
|
# Actual volume keys.
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume mute && notify-send "Volume Muted" $(volume)'
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +05 && notify-send "Volume + " $(volume)'
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -05 && notify-send "Volume - " $(volume)'
|
||||||
|
bindsym $shift+XF86AudioRaiseVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +25 && notify-send "Volume +++ " $(volume)'
|
||||||
|
bindsym $shift+XF86AudioLowerVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -25 && notify-send "Volume --- " $(volume)'
|
||||||
|
|
||||||
|
|
||||||
|
## Keyboard Brightness ##
|
||||||
|
|
||||||
|
# Macbooks tend to use 'sysfs/leds/smc::kbd_backlight'
|
||||||
|
# NovaCustom laptop is 'sysfs/leds/system76_acpi::kbd_backlight'
|
||||||
|
# Some other laptops may be 'sysfs/class/leds/...', use ìght -L`to find out.
|
||||||
|
bindsym XF86KbdBrightnessUp exec "light -s sysfs/leds/smc::kbd_backlight -A 05 && notify-send 'Keyboard Brightness + ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
bindsym XF86KbdBrightnessDown exec "light -s sysfs/leds/smc::kbd_backlight -U 05 && notify-send 'Keyboard Brightness - ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
bindsym $shift+XF86KbdBrightnessUp exec "light -s sysfs/leds/smc::kbd_backlight -A 20 && notify-send 'Keyboard Brightness +++' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
bindsym $shift+XF86KbdBrightnessDown exec "light -s sysfs/leds/smc::kbd_backlight -U 20 && notify-send 'Keyboard Brightness ---' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
|
||||||
|
bindsym $mod+apostrophe exec "light -s sysfs/leds/smc::kbd_backlight -A 05 && notify-send 'Keyboard Brightness + ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
bindsym $mod+semicolon exec "light -s sysfs/leds/smc::kbd_backlight -U 05 && notify-send 'Keyboard Brightness - ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
bindsym $shift+$mod+apostrophe exec "light -s sysfs/leds/smc::kbd_backlight -A 20 && notify-send 'Keyboard Brightness +++' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
bindsym $shift+$mod+semicolon exec "light -s sysfs/leds/smc::kbd_backlight -U 20 && notify-send 'Keyboard Brightness ---' $(light -s sysfs/leds/smc::kbd_backlight -G)"
|
||||||
|
|
||||||
|
|
||||||
|
## Workspaces ##
|
||||||
|
|
||||||
# Define names for default workspaces for which we configure key bindings later on.
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
# We use variables to avoid repeating the names in multiple places.
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
@@ -142,10 +199,10 @@ set $ws3 "3 - PRG"
|
|||||||
set $ws4 "4 - FLT"
|
set $ws4 "4 - FLT"
|
||||||
# Chats
|
# Chats
|
||||||
set $ws5 "5 - CHT"
|
set $ws5 "5 - CHT"
|
||||||
# Editors
|
# Other
|
||||||
set $ws6 "6 - EDT"
|
set $ws6 "6 - OTH"
|
||||||
# Entertainment
|
# Torrents
|
||||||
set $ws7 "7 - ENT"
|
set $ws7 "7 - TOR"
|
||||||
# Music
|
# Music
|
||||||
set $ws8 "8 - MUS"
|
set $ws8 "8 - MUS"
|
||||||
# Videos
|
# Videos
|
||||||
@@ -178,6 +235,9 @@ bindsym $mod+Shift+9 move container to workspace number $ws9
|
|||||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||||
|
|
||||||
## Keep certain programs in certain tabs. ##
|
## Keep certain programs in certain tabs. ##
|
||||||
|
# Use the `xprop` command to find the class of a program.
|
||||||
|
# (?i) makes the regex case insensitive.
|
||||||
|
|
||||||
assign [class="(?i)Navigator"] $ws2
|
assign [class="(?i)Navigator"] $ws2
|
||||||
assign [class="(?i).*Firefox.*"] $ws2
|
assign [class="(?i).*Firefox.*"] $ws2
|
||||||
|
|
||||||
@@ -185,9 +245,23 @@ assign [class="(?i).*Codium.*"] $ws3
|
|||||||
|
|
||||||
assign [class="(?i).*Code.*"] $ws4
|
assign [class="(?i).*Code.*"] $ws4
|
||||||
|
|
||||||
|
assign [class="(?i).*Transmission.*"] $ws7
|
||||||
|
|
||||||
assign [class="(?i).*VPN.*"] $ws10
|
assign [class="(?i).*VPN.*"] $ws10
|
||||||
assign [class="(?i).*Mullvad.*"] $ws10
|
assign [class="(?i).*Mullvad.*"] $ws10
|
||||||
|
|
||||||
|
|
||||||
|
## Workspace Specific Workflows ##
|
||||||
|
bindsym $ctrl+$shift+1 workspace $ws1; exec i3-sensible-terminal;
|
||||||
|
bindsym $ctrl+$shift+2 workspace $ws2; exec "firefox || firefox-esr || firefox-flatpak";
|
||||||
|
bindsym $ctrl+$shift+3 workspace $ws3; exec codium-flatpak;
|
||||||
|
bindsym $ctrl+$shift+4 workspace $ws4; exec code-flatpak;
|
||||||
|
bindsym $ctrl+$shift+5 workspace $ws5; exec "session; dino"
|
||||||
|
bindsym $ctrl+$shift+7 workspace $ws7; exec "transmission || transmission-gtk || transmission-flatpak"
|
||||||
|
|
||||||
|
|
||||||
|
## Reloads, Restarts, Exit ##
|
||||||
|
|
||||||
# reload the configuration file
|
# reload the configuration file
|
||||||
bindsym $mod+Shift+c reload
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
@@ -198,32 +272,48 @@ bindsym $mod+Shift+r restart
|
|||||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||||
bindsym $mod+Shift+q exit
|
bindsym $mod+Shift+q exit
|
||||||
|
|
||||||
|
# lock
|
||||||
|
bindsym $ctrl+$alt+l exec "i3lock -c 000000 -e -f && sleep 1 && xset dpms force off"
|
||||||
|
bindsym $ctrl+$mod+l exec "i3lock -c 000000 -e -f && sleep 1 && xset dpms force off"
|
||||||
|
bindsym $shift+$mod+l exec "i3lock -c 000000 -e -f && sleep 1 && xset dpms force off"
|
||||||
|
|
||||||
|
# shutdown entire system.
|
||||||
|
#bindsym $ctrl+$shift+q exec dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
|
||||||
|
bindsym $ctrl+$alt+q exec sudo shutdown -h now
|
||||||
|
bindsym $shift+$alt+q exec sudo shutdown -h now
|
||||||
|
bindsym $shift+$ctrl+q exec sudo shutdown -h now
|
||||||
|
|
||||||
|
## Resizing (Disabled) ##
|
||||||
|
|
||||||
# resize window (you can also use the mouse for that)
|
# resize window (you can also use the mouse for that)
|
||||||
mode "resize" {
|
#mode "resize" {
|
||||||
# These bindings trigger as soon as you enter the resize mode
|
# # These bindings trigger as soon as you enter the resize mode
|
||||||
|
#
|
||||||
|
# # Pressing left will shrink the window’s width.
|
||||||
|
# # Pressing right will grow the window’s width.
|
||||||
|
# # Pressing up will shrink the window’s height.
|
||||||
|
# # Pressing down will grow the window’s height.
|
||||||
|
# bindsym j resize shrink width 10 px or 10 ppt
|
||||||
|
# bindsym k resize grow height 10 px or 10 ppt
|
||||||
|
# bindsym l resize shrink height 10 px or 10 ppt
|
||||||
|
# bindsym semicolon resize grow width 10 px or 10 ppt
|
||||||
|
#
|
||||||
|
# # same bindings, but for the arrow keys
|
||||||
|
# bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
# bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
# bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
# bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
#
|
||||||
|
# # back to normal: Enter or Escape or $mod+r
|
||||||
|
# bindsym Return mode "default"
|
||||||
|
# bindsym Escape mode "default"
|
||||||
|
# bindsym $mod+r mode "default"
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
#bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
# Pressing left will shrink the window’s width.
|
|
||||||
# Pressing right will grow the window’s width.
|
|
||||||
# Pressing up will shrink the window’s height.
|
|
||||||
# Pressing down will grow the window’s height.
|
|
||||||
bindsym j resize shrink width 10 px or 10 ppt
|
|
||||||
bindsym k resize grow height 10 px or 10 ppt
|
|
||||||
bindsym l resize shrink height 10 px or 10 ppt
|
|
||||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
|
||||||
|
|
||||||
# same bindings, but for the arrow keys
|
## Taskbar ##
|
||||||
bindsym Left resize shrink width 10 px or 10 ppt
|
|
||||||
bindsym Down resize grow height 10 px or 10 ppt
|
|
||||||
bindsym Up resize shrink height 10 px or 10 ppt
|
|
||||||
bindsym Right resize grow width 10 px or 10 ppt
|
|
||||||
|
|
||||||
# back to normal: Enter or Escape or $mod+r
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
bindsym $mod+r mode "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
bindsym $mod+r mode "resize"
|
|
||||||
|
|
||||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
# finds out, if available)
|
# finds out, if available)
|
||||||
@@ -231,7 +321,17 @@ bar {
|
|||||||
status_command i3status
|
status_command i3status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
## Startup Applications ##
|
## Startup Applications ##
|
||||||
|
|
||||||
exec st
|
exec mullvad-vpn
|
||||||
#exec firefox-flatpak
|
exec i3-sensible-terminal
|
||||||
|
exec "transmission || transmission-gtk || transmission-flatpak"
|
||||||
|
|
||||||
|
exec light -O
|
||||||
|
exec light -N 0
|
||||||
|
|
||||||
|
exec setxkbmap -layout us -variant altgr-intl
|
||||||
|
|
||||||
|
exec --no-startup-id dunst
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -18,11 +19,11 @@
|
|||||||
"files.trimFinalNewlines": true,
|
"files.trimFinalNewlines": true,
|
||||||
"git.confirmSync": false,
|
"git.confirmSync": false,
|
||||||
|
|
||||||
"[dart]": {
|
"[dart]": {
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"editor.formatOnType": true,
|
"editor.formatOnType": true,
|
||||||
"editor.selectionHighlight": false,
|
"editor.selectionHighlight": false,
|
||||||
"editor.tabCompletion": "onlySnippets",
|
"editor.tabCompletion": "onlySnippets",
|
||||||
"editor.wordBasedSuggestions": "off"
|
"editor.wordBasedSuggestions": "off"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,5 @@
|
|||||||
|
|
||||||
%sudo ALL=(ALL) ALL
|
%sudo ALL=(ALL) ALL
|
||||||
|
|
||||||
|
# Allow anyone in the sudo group to shutdown or reboot without a password.
|
||||||
|
%sudo ALL=(ALL) NOPASSWD: /sbin/shutdown, /usr/sbin/shutdown, /sbin/reboot, /usr/sbin/reboot
|
||||||
|
|||||||
@@ -88,9 +88,14 @@
|
|||||||
- 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
|
||||||
|
|
||||||
|
- include_tasks: tasks/general/settings/keyboard.yml
|
||||||
|
|
||||||
- include_tasks: tasks/general/acct_mgmt/groups.yml
|
- include_tasks: tasks/general/acct_mgmt/groups.yml
|
||||||
- include_tasks: tasks/general/acct_mgmt/users.yml
|
- include_tasks: tasks/general/acct_mgmt/users.yml
|
||||||
- include_tasks: tasks/general/acct_mgmt/sudo.yml
|
- include_tasks: tasks/general/acct_mgmt/sudo.yml
|
||||||
@@ -107,7 +112,6 @@
|
|||||||
when: ansible_system == "FreeBSD"
|
when: ansible_system == "FreeBSD"
|
||||||
|
|
||||||
- include_tasks: tasks/general/software/metasploit.yml
|
- include_tasks: tasks/general/software/metasploit.yml
|
||||||
when: pentesting == true
|
|
||||||
|
|
||||||
when: provision == true
|
when: provision == true
|
||||||
|
|
||||||
@@ -120,40 +124,39 @@
|
|||||||
|
|
||||||
- include_tasks: facts/workstation/package.yml
|
- include_tasks: facts/workstation/package.yml
|
||||||
|
|
||||||
# Set Up Desktop Environments #
|
## Desktop Environments ##
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/freebsd/software/gpu.yml
|
- include_tasks: tasks/workstation/freebsd/software/gpu.yml
|
||||||
when: ansible_system == "FreeBSD" and bsd_gpu == true
|
when: ansible_system == "FreeBSD" and bsd_gpu == true
|
||||||
|
|
||||||
# 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
|
||||||
when: ansible_system == "FreeBSD"
|
when: ansible_system == "FreeBSD"
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/software/gnome.yml
|
- name: Main | Workstation | Fancy Desktop Environments
|
||||||
|
block:
|
||||||
|
- include_tasks: tasks/workstation/linux/software/gnome.yml
|
||||||
|
when: ansible_service_mgr == "systemd"
|
||||||
|
- include_tasks: tasks/workstation/linux/software/cinnamon.yml
|
||||||
|
- include_tasks: tasks/workstation/linux/software/lxqt.yml
|
||||||
when: ansible_system == "Linux"
|
when: ansible_system == "Linux"
|
||||||
|
# TBD: Implement this: and extra_desktops == true
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/software/cinnamon.yml
|
## Software Tasks ##
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/software/lxqt.yml
|
- block:
|
||||||
|
- include_tasks: tasks/workstation/linux/software/packages.yml
|
||||||
# Software Tasks #
|
- include_tasks: tasks/workstation/linux/software/tlp.yml
|
||||||
- include_tasks: tasks/workstation/linux/software/packages.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/vpn.yml
|
||||||
- include_tasks: tasks/workstation/linux/software/lutris.yml
|
- include_tasks: tasks/workstation/linux/software/nodejs.yml
|
||||||
when: ansible_system == "Linux"
|
- include_tasks: tasks/workstation/linux/software/brave.yml
|
||||||
|
when: ansible_pkg_mgr in ("apt", "dnf", "zypper") and not mobile
|
||||||
- include_tasks: tasks/workstation/linux/software/vscodium.yml
|
|
||||||
when: ansible_system == "Linux"
|
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/software/brave.yml
|
|
||||||
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
|
||||||
@@ -162,12 +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"
|
||||||
|
|
||||||
# Configuration Tasks #
|
|
||||||
- include_tasks: tasks/workstation/shared/settings/gnome.yml
|
|
||||||
when: not mobile
|
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/cron/ansible.yml
|
## Configuration Tasks ##
|
||||||
when: ansible_system == "Linux" and not mobile
|
|
||||||
|
- block:
|
||||||
|
- include_tasks: tasks/workstation/shared/settings/gnome.yml
|
||||||
|
- include_tasks: tasks/workstation/shared/settings/cinnamon.yml
|
||||||
|
|
||||||
|
- include_tasks: tasks/workstation/linux/cron/ansible.yml
|
||||||
|
when: ansible_system == "Linux"
|
||||||
|
when: not mobile
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/shared/settings/nfs.yml
|
- include_tasks: tasks/workstation/shared/settings/nfs.yml
|
||||||
|
|
||||||
@@ -178,21 +185,17 @@
|
|||||||
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) ##
|
||||||
- include_tasks: tasks/workstation/linux/software/flutter.yml
|
|
||||||
when: ansible_system == "Linux"
|
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/software/android.yml
|
- block:
|
||||||
|
- include_tasks: tasks/workstation/linux/software/flutter.yml
|
||||||
|
- include_tasks: tasks/workstation/linux/software/android.yml
|
||||||
|
- include_tasks: tasks/workstation/linux/software/flatpaks.yml
|
||||||
|
when: flatpak_distro
|
||||||
when: ansible_system == "Linux"
|
when: ansible_system == "Linux"
|
||||||
|
|
||||||
- include_tasks: tasks/workstation/linux/software/flatpaks.yml
|
|
||||||
when: ansible_system == "Linux" and flatpak_distro
|
|
||||||
|
|
||||||
when: workstation == true
|
when: workstation == true
|
||||||
|
|
||||||
|
|
||||||
@@ -245,22 +248,21 @@
|
|||||||
|
|
||||||
- include_tasks: tasks/server/software/services.yml
|
- include_tasks: tasks/server/software/services.yml
|
||||||
|
|
||||||
- include_tasks: tasks/server/software/certbot.yml
|
- block:
|
||||||
when: certbot == true
|
- include_tasks: tasks/server/software/certbot.yml
|
||||||
- include_tasks: tasks/server/cron/certbot.yml
|
- include_tasks: tasks/server/cron/certbot.yml
|
||||||
when: certbot == true
|
when: certbot == true
|
||||||
|
|
||||||
- include_tasks: tasks/server/software/onlyoffice.yml
|
- block:
|
||||||
when: onlyoffice == true and ansible_pkg_mgr == "apt"
|
- include_tasks: tasks/server/software/onlyoffice.yml
|
||||||
|
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
|
||||||
when: influxdb2 == true and ansible_pkg_mgr == "apt"
|
- include_tasks: tasks/server/software/grafana.yml
|
||||||
|
when: grafana == true
|
||||||
- include_tasks: tasks/server/software/grafana.yml
|
when: ansible_pkg_mgr == "apt"
|
||||||
when: grafana == true and ansible_pkg_mgr == "apt"
|
|
||||||
|
|
||||||
- include_tasks: tasks/server/software/hugo.yml
|
- include_tasks: tasks/server/software/hugo.yml
|
||||||
when: hugo == true
|
when: hugo == true
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ##
|
||||||
@@ -122,12 +122,29 @@
|
|||||||
|
|
||||||
## Files ##
|
## Files ##
|
||||||
|
|
||||||
|
- name: General | Account Management | Users | Files | Profile Variables
|
||||||
|
set_fact:
|
||||||
|
export_path_additions: export PATH="$HOME/bin:"{{ global_bin }}":"{{ shared_rc_bin }}":$PATH"
|
||||||
|
export_path_sbin: export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
|
||||||
|
#export_terminal: export TERMINAL="alacritty" # colors look weird.
|
||||||
|
export_terminal: export TERMINAL="kitty"
|
||||||
|
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:
|
||||||
alias_cp: alias cp='cp -v'
|
alias_cp: alias cp='cp -v'
|
||||||
alias_mv: alias mv='mv -v'
|
alias_mv: alias mv='mv -v'
|
||||||
alias_rm: alias rm='echo "Use mv ~/TRASH/ instead!"'
|
alias_rm: alias rm='echo "Use mv ~/TRASH/ instead!"'
|
||||||
export_path_additions: export PATH="~/bin:"{{ global_bin }}":"{{ shared_rc_bin }}":$PATH"
|
|
||||||
function_wttr: |
|
function_wttr: |
|
||||||
function weather() {
|
function weather() {
|
||||||
# 20210301 - Someone showed me an awesome weather API! Had to implement it!
|
# 20210301 - Someone showed me an awesome weather API! Had to implement it!
|
||||||
@@ -275,7 +292,7 @@
|
|||||||
alias init-video='
|
alias init-video='
|
||||||
mkdir -v raw
|
mkdir -v raw
|
||||||
mkdir -v exports
|
mkdir -v exports
|
||||||
cp ~/Templates/*video* ./
|
cp $HOME/Templates/*video* ./
|
||||||
'
|
'
|
||||||
alias init-vid=init-video
|
alias init-vid=init-video
|
||||||
alias init-program='
|
alias init-program='
|
||||||
@@ -425,7 +442,7 @@
|
|||||||
echo "Checking but not cleaning /var/mail..."
|
echo "Checking but not cleaning /var/mail..."
|
||||||
du -ha /var/mail | sort -h
|
du -ha /var/mail | sort -h
|
||||||
if [[ $clean == "Y" ]]; then
|
if [[ $clean == "Y" ]]; then
|
||||||
clean-trashed "~/"
|
clean-trashed "$HOME/"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@@ -623,7 +640,7 @@
|
|||||||
alias code-sync='code-check'
|
alias code-sync='code-check'
|
||||||
alias_code_reset: |
|
alias_code_reset: |
|
||||||
alias code-reset='
|
alias code-reset='
|
||||||
ls -d ~/Code/* | while read project
|
ls -d $HOME/Code/* | while read project
|
||||||
do echo "*** `basename $project` ***"
|
do echo "*** `basename $project` ***"
|
||||||
cd $project
|
cd $project
|
||||||
git stash
|
git stash
|
||||||
@@ -668,7 +685,7 @@
|
|||||||
echo -e "\n*** Move old projects to TRASH ***"
|
echo -e "\n*** Move old projects to TRASH ***"
|
||||||
unseed_dir="$HOME/TRASH/`date +%Y%m%d_%H%M%S`_UnseededCodeProjects"
|
unseed_dir="$HOME/TRASH/`date +%Y%m%d_%H%M%S`_UnseededCodeProjects"
|
||||||
mkdir -pv "$unseed_dir"
|
mkdir -pv "$unseed_dir"
|
||||||
mv -v ~/Code/* "$unseed_dir"/ 2>/dev/null
|
mv -v $HOME/Code/* "$unseed_dir"/ 2>/dev/null
|
||||||
|
|
||||||
# Git repo information.
|
# Git repo information.
|
||||||
git_repo_ssh={{ git_repo_ssh }}
|
git_repo_ssh={{ git_repo_ssh }}
|
||||||
@@ -688,7 +705,7 @@
|
|||||||
|
|
||||||
# Download of the project.
|
# Download of the project.
|
||||||
git clone ${git_repo_ssh_basename}${git_project} \
|
git clone ${git_repo_ssh_basename}${git_project} \
|
||||||
--branch $git_branch ~/Code/$dest_folder
|
--branch $git_branch $HOME/Code/$dest_folder
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
function_clean_filenames: |
|
function_clean_filenames: |
|
||||||
@@ -747,15 +764,15 @@
|
|||||||
function_clean_code: |
|
function_clean_code: |
|
||||||
function clean-code {
|
function clean-code {
|
||||||
echo -e "******* Android *******\n*** Build Caches ***"
|
echo -e "******* Android *******\n*** Build Caches ***"
|
||||||
find ~/Code/android-*/app -maxdepth 1 -type d -name "build" \
|
find $HOME/Code/android-*/app -maxdepth 1 -type d -name "build" \
|
||||||
-exec du -hs {} \; -exec rm -rf {} \;
|
-exec du -hs {} \; -exec rm -rf {} \;
|
||||||
echo -e "\n*** Gradle Caches ***"
|
echo -e "\n*** Gradle Caches ***"
|
||||||
find ~/Code/android-*/ -maxdepth 1 -type d -name ".gradle" \
|
find $HOME/Code/android-*/ -maxdepth 1 -type d -name ".gradle" \
|
||||||
-exec du -hs {} \; -exec rm -rf {} \;
|
-exec du -hs {} \; -exec rm -rf {} \;
|
||||||
|
|
||||||
echo -e "******* Flutter *******"
|
echo -e "******* Flutter *******"
|
||||||
ls ~/Code | grep flutter | while read project; do
|
ls $HOME/Code | grep flutter | while read project; do
|
||||||
cd ~/Code/$project
|
cd $HOME/Code/$project
|
||||||
pwd
|
pwd
|
||||||
flutter clean
|
flutter clean
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
@@ -763,7 +780,7 @@
|
|||||||
cd
|
cd
|
||||||
|
|
||||||
echo -e "******* PDFs *******"
|
echo -e "******* PDFs *******"
|
||||||
find ~/Code/ebook-* -name "*.pdf" -exec du -h {} \; -delete | sort -h
|
find $HOME/Code/ebook-* -name "*.pdf" -exec du -h {} \; -delete | sort -h
|
||||||
|
|
||||||
echo -e "\n*** Done! ***"
|
echo -e "\n*** Done! ***"
|
||||||
}
|
}
|
||||||
@@ -868,7 +885,7 @@
|
|||||||
rmdir -v tmp
|
rmdir -v tmp
|
||||||
else
|
else
|
||||||
echo "Failed!"
|
echo "Failed!"
|
||||||
mv tmp ~/TRASH/"tmp_`now`"
|
mv tmp $HOME/TRASH/"tmp_`now`"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function pull_prod_backups {
|
function pull_prod_backups {
|
||||||
@@ -966,8 +983,8 @@
|
|||||||
function_ebook_convert: |
|
function_ebook_convert: |
|
||||||
# Regenerate all eBook projects at once.
|
# Regenerate all eBook projects at once.
|
||||||
function ebook-convert {
|
function ebook-convert {
|
||||||
find ~/Code/ebook-* -name "*.pdf" -print -delete
|
find $HOME/Code/ebook-* -name "*.pdf" -print -delete
|
||||||
find ~/Code/ebook-* -name convert.sh -print -exec bash "{}" \;
|
find $HOME/Code/ebook-* -name convert.sh -print -exec bash "{}" \;
|
||||||
}
|
}
|
||||||
alias ebooks="ebook-convert"
|
alias ebooks="ebook-convert"
|
||||||
alias convert="ebook-convert"
|
alias convert="ebook-convert"
|
||||||
@@ -1037,7 +1054,7 @@
|
|||||||
alias reset-stage="load-branch stage main"
|
alias reset-stage="load-branch stage main"
|
||||||
alias reset-dev="load-branch dev main"
|
alias reset-dev="load-branch dev main"
|
||||||
function check-code-branches {
|
function check-code-branches {
|
||||||
for dir in ~/Code/*/; do
|
for dir in $HOME/Code/*/; do
|
||||||
cd $dir
|
cd $dir
|
||||||
pwd
|
pwd
|
||||||
git ls-remote --heads
|
git ls-remote --heads
|
||||||
@@ -1049,7 +1066,7 @@
|
|||||||
alias check-branch="git ls-remote --heads"
|
alias check-branch="git ls-remote --heads"
|
||||||
alias branch-check="check-branch"
|
alias branch-check="check-branch"
|
||||||
alias_reload_bash: |
|
alias_reload_bash: |
|
||||||
alias reload-bash="source ~/.bashrc"
|
alias reload-bash="source $HOME/.bashrc"
|
||||||
alias bash-reload="reload-bash"
|
alias bash-reload="reload-bash"
|
||||||
alias shell-reload="reload-bash"
|
alias shell-reload="reload-bash"
|
||||||
alias reload-shell="reload-bash"
|
alias reload-shell="reload-bash"
|
||||||
@@ -1097,8 +1114,8 @@
|
|||||||
}
|
}
|
||||||
alias try="loop "
|
alias try="loop "
|
||||||
source_shared: |
|
source_shared: |
|
||||||
if [ -f ~/.rc_shared ]; then
|
if [ -f $HOME/.rc_shared ]; then
|
||||||
source ~/.rc_shared
|
source $HOME/.rc_shared
|
||||||
fi
|
fi
|
||||||
process_notify_log: |
|
process_notify_log: |
|
||||||
if [[ -e {{ notify_log_file }} ]]; then
|
if [[ -e {{ notify_log_file }} ]]; then
|
||||||
@@ -1109,12 +1126,78 @@
|
|||||||
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
|
||||||
set_fact:
|
set_fact:
|
||||||
rc_profile: |
|
profile_common: |
|
||||||
{{ export_path_additions }}
|
{{ export_path_additions }}
|
||||||
|
{{ export_path_sbin }}
|
||||||
|
{{ export_terminal }}
|
||||||
|
{{ export_browser }}
|
||||||
|
{{ keyboard_settings}}
|
||||||
rc_common: |
|
rc_common: |
|
||||||
# Fixes "command not found" when using aliases within functions.
|
# Fixes "command not found" when using aliases within functions.
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
@@ -1193,12 +1276,13 @@
|
|||||||
{{ alias_commit }}
|
{{ alias_commit }}
|
||||||
{{ function_loop }}
|
{{ function_loop }}
|
||||||
{{ process_notify_log }}
|
{{ process_notify_log }}
|
||||||
|
{{ function_reconnect }}
|
||||||
|
|
||||||
- name: General | Account Management | Users | Files | .profile
|
- name: General | Account Management | Users | Files | .profile + .xsessionrc
|
||||||
blockinfile:
|
blockinfile:
|
||||||
path: "{{ item }}/.profile"
|
path: "{{ user_user.home }}/{{ item }}"
|
||||||
block: |
|
block: |
|
||||||
{{ rc_profile }}
|
{{ profile_common }}
|
||||||
|
|
||||||
[[ $(whoami) != "root" ]] &&
|
[[ $(whoami) != "root" ]] &&
|
||||||
echo "`date` - Ansible .profile loaded successfully!"
|
echo "`date` - Ansible .profile loaded successfully!"
|
||||||
@@ -1207,15 +1291,16 @@
|
|||||||
create: yes
|
create: yes
|
||||||
backup: no
|
backup: no
|
||||||
loop:
|
loop:
|
||||||
- "{{ user_root.home }}"
|
- ".profile"
|
||||||
- "{{ user_user.home }}"
|
- ".xprofile"
|
||||||
ignore_errors: yes
|
- ".xsessionrc"
|
||||||
when: user_root.home != "" and user_user.home != ""
|
when: user_user.home != ""
|
||||||
|
|
||||||
- name: General | Account Management | Users | Files | .bashrc
|
- name: General | Account Management | Users | Files | .bashrc
|
||||||
blockinfile:
|
blockinfile:
|
||||||
path: "{{ item }}/.bashrc"
|
path: "{{ item }}/.bashrc"
|
||||||
block: |
|
block: |
|
||||||
|
{{ profile_common }}
|
||||||
{{ rc_common }}
|
{{ rc_common }}
|
||||||
|
|
||||||
# Export all functions! #
|
# Export all functions! #
|
||||||
@@ -1230,7 +1315,6 @@
|
|||||||
loop:
|
loop:
|
||||||
- "{{ user_root.home }}"
|
- "{{ user_root.home }}"
|
||||||
- "{{ user_user.home }}"
|
- "{{ user_user.home }}"
|
||||||
ignore_errors: yes
|
|
||||||
when: user_root.home != "" and user_user.home != ""
|
when: user_root.home != "" and user_user.home != ""
|
||||||
|
|
||||||
- name: General | Account Management | Users | Files | .zshrc
|
- name: General | Account Management | Users | Files | .zshrc
|
||||||
@@ -1247,7 +1331,6 @@
|
|||||||
loop:
|
loop:
|
||||||
- "{{ user_root.home }}"
|
- "{{ user_root.home }}"
|
||||||
- "{{ user_user.home }}"
|
- "{{ user_user.home }}"
|
||||||
ignore_errors: yes
|
|
||||||
when: user_root.home != "" and user_user.home != ""
|
when: user_root.home != "" and user_user.home != ""
|
||||||
|
|
||||||
- name: General | Account Management | Users | Files | Ownership
|
- name: General | Account Management | Users | Files | Ownership
|
||||||
@@ -1258,6 +1341,9 @@
|
|||||||
loop:
|
loop:
|
||||||
- .bashrc
|
- .bashrc
|
||||||
- .zshrc
|
- .zshrc
|
||||||
|
- .profile
|
||||||
|
- .xprofile
|
||||||
|
- .xsessionrc
|
||||||
|
|
||||||
|
|
||||||
- name: General | Account Management | Users | Files | Helper Functions (Reset)
|
- name: General | Account Management | Users | Files | Helper Functions (Reset)
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
# 20260716 - Hyperling
|
||||||
|
# Ensure the correct International AltGr keyboard setting is always chosen.
|
||||||
|
|
||||||
|
- name: General | Settings | Keyboard | Default Config
|
||||||
|
lineinfile:
|
||||||
|
path: "/etc/default/keyboard"
|
||||||
|
regexp: '{{ item.key }}'
|
||||||
|
line: '{{ item.value }}'
|
||||||
|
state: present
|
||||||
|
create: yes
|
||||||
|
backup: yes
|
||||||
|
loop:
|
||||||
|
#- { "key": '^[\#]?XKBMODEL', "value": 'XKBMODEL="pc105"'}
|
||||||
|
- { "key": '^[\#]?XKBLAYOUT', "value": 'XKBLAYOUT="us"'}
|
||||||
|
- { "key": '^[\#]?XKBVARIANT', "value": 'XKBVARIANT="altgr-intl"'}
|
||||||
@@ -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 }}"
|
||||||
|
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
metasploit_installer: msfinstall
|
metasploit_installer: msfinstall
|
||||||
when: ansible_system in ("Linux", "Darwin")
|
when: ansible_system in ("Linux", "Darwin")
|
||||||
|
and pentesting == true
|
||||||
|
|
||||||
- name: General | Software | Metasploit | Check Install Status
|
- name: General | Software | Metasploit | Check Install Status
|
||||||
stat:
|
stat:
|
||||||
@@ -18,8 +19,9 @@
|
|||||||
- "mv -fv /usr/share/keyrings/metasploit-framework.gpg /tmp/apt/metasploit-framework.gpg.old"
|
- "mv -fv /usr/share/keyrings/metasploit-framework.gpg /tmp/apt/metasploit-framework.gpg.old"
|
||||||
- "mv -fv /etc/apt/sources.list.d/metasploit-framework.list /tmp/apt/metasploit-framework.list.old"
|
- "mv -fv /etc/apt/sources.list.d/metasploit-framework.list /tmp/apt/metasploit-framework.list.old"
|
||||||
- "mv -fv /etc/apt/preferences.d/pin-metasploit.pref /tmp/apt/pin-metasploit.pref.old"
|
- "mv -fv /etc/apt/preferences.d/pin-metasploit.pref /tmp/apt/pin-metasploit.pref.old"
|
||||||
when: ansible_system in ("Linux") and
|
when: ansible_system in ("Linux") and ansible_pkg_mgr == "apt"
|
||||||
not metasploit_status.stat.exists
|
and not metasploit_status.stat.exists
|
||||||
|
and pentesting == true
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: General | Software | Metasploit | Install
|
- name: General | Software | Metasploit | Install
|
||||||
@@ -28,7 +30,24 @@
|
|||||||
- "curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > {{ metasploit_installer }}"
|
- "curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > {{ metasploit_installer }}"
|
||||||
- "chmod 755 {{ metasploit_installer }}"
|
- "chmod 755 {{ metasploit_installer }}"
|
||||||
- "mkdir -p {{ global_bin }}"
|
- "mkdir -p {{ global_bin }}"
|
||||||
- "mv -fv ./msfinstall {{ global_bin }}/{{ metasploit_installer }}"
|
- "mv -fv ./{{ metasploit_installer }} {{ global_bin }}/{{ metasploit_installer }}"
|
||||||
- yes y | "{{ global_bin }}/{{ metasploit_installer }}"
|
- yes y | "{{ global_bin }}/{{ metasploit_installer }}"
|
||||||
when: ansible_system in ("Linux", "Darwin") and
|
when: ansible_system in ("Linux", "Darwin")
|
||||||
not metasploit_status.stat.exists
|
and not metasploit_status.stat.exists
|
||||||
|
and pentesting == true
|
||||||
|
|
||||||
|
- name: General | Software | Metasploit | Remove (Darwin)
|
||||||
|
shell: "{{ item }}"
|
||||||
|
loop:
|
||||||
|
- "/opt/metasploit-framework/bin/msfremove"
|
||||||
|
when: ansible_system in ("Darwin")
|
||||||
|
and not metasploit_status.stat.exists
|
||||||
|
and pentesting == false
|
||||||
|
|
||||||
|
- name: General | Software | Metasploit | Remove
|
||||||
|
package:
|
||||||
|
name: "metasploit-framework"
|
||||||
|
state: absent
|
||||||
|
when: ansible_system in ("Linux")
|
||||||
|
and metasploit_status.stat.exists
|
||||||
|
and pentesting == false
|
||||||
|
|||||||
@@ -40,33 +40,38 @@
|
|||||||
- name: General | Software | Packages | Install Software
|
- name: General | Software | Packages | Install Software
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- bash
|
- bash
|
||||||
- sudo
|
- sudo
|
||||||
- nmap
|
- nmap
|
||||||
- "{{ neofetch }}"
|
- "{{ neofetch }}"
|
||||||
- "{{ sshfs }}"
|
- "{{ sshfs }}"
|
||||||
- "{{ locate }}"
|
- "{{ locate }}"
|
||||||
- zsh
|
- zsh
|
||||||
- "{{ opensshd }}"
|
- "{{ opensshd }}"
|
||||||
- "{{ tar }}"
|
- "{{ tar }}"
|
||||||
- curl
|
- curl
|
||||||
- at
|
- at
|
||||||
- gcc
|
- gcc
|
||||||
- vim
|
- vim
|
||||||
- "{{ cron }}"
|
- "{{ cron }}"
|
||||||
- "{{ encfs }}"
|
- "{{ encfs }}"
|
||||||
- rsync
|
- rsync
|
||||||
- "{{ iftop }}"
|
- "{{ iftop }}"
|
||||||
- "{{ nethogs }}"
|
- "{{ nethogs }}"
|
||||||
- "{{ ntp_server }}"
|
- "{{ ntp_server }}"
|
||||||
- "{{ dig }}"
|
- "{{ dig }}"
|
||||||
|
- "{{ 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)
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- "{{ microcode_amd }}"
|
- "{{ microcode_amd }}"
|
||||||
- "{{ microcode_intel }}"
|
- "{{ microcode_intel }}"
|
||||||
state: present
|
state: present
|
||||||
when: branch == "dev"
|
when: branch == "dev"
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
@@ -74,10 +79,10 @@
|
|||||||
- name: General | Software | Packages | Add Generic Kernel + Tools (Ubuntu)
|
- name: General | Software | Packages | Add Generic Kernel + Tools (Ubuntu)
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- linux-image-generic
|
- linux-image-generic
|
||||||
- linux-headers-generic
|
- linux-headers-generic
|
||||||
- linux-tools-generic
|
- linux-tools-generic
|
||||||
- linux-tools-common
|
- linux-tools-common
|
||||||
state: present
|
state: present
|
||||||
when: ansible_distribution == "Ubuntu"
|
when: ansible_distribution == "Ubuntu"
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
@@ -85,27 +90,27 @@
|
|||||||
- name: General | Software | Packages | Add Generic Kernel + Headers (Debian)
|
- name: General | Software | Packages | Add Generic Kernel + Headers (Debian)
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- linux-image-amd64
|
- linux-image-amd64
|
||||||
- linux-headers-amd64
|
- linux-headers-amd64
|
||||||
state: present
|
state: present
|
||||||
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
|
||||||
@@ -120,21 +125,21 @@
|
|||||||
- name: General | Software | Packages | Update Software (Disabled)
|
- name: General | Software | Packages | Update Software (Disabled)
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- ansible
|
- ansible
|
||||||
- git
|
- git
|
||||||
state: latest
|
state: latest
|
||||||
when: 1 == 0
|
when: 1 == 0
|
||||||
|
|
||||||
- name: General | Software | Packages | Remove Software
|
- name: General | Software | Packages | Remove Software
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- cowsay # Sorry ;)
|
- cowsay # Sorry ;)
|
||||||
- chromium
|
- chromium
|
||||||
- chromium-browser
|
- chromium-browser
|
||||||
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
|
||||||
@@ -146,7 +151,7 @@
|
|||||||
- name: General | Software | Packages | Remove Snap (Besides Ubuntu)
|
- name: General | Software | Packages | Remove Snap (Besides Ubuntu)
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- snapd
|
- snapd
|
||||||
state: absent
|
state: absent
|
||||||
when: ansible_distribution != "Ubuntu"
|
when: ansible_distribution != "Ubuntu"
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
@@ -154,7 +159,7 @@
|
|||||||
- name: General | Software | Packages | Other Debian Packages
|
- name: General | Software | Packages | Other Debian Packages
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- usbutils
|
- usbutils
|
||||||
state: present
|
state: present
|
||||||
when: ansible_distribution in ("Debian")
|
when: ansible_distribution in ("Debian")
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
|||||||
@@ -10,30 +10,20 @@
|
|||||||
state: started
|
state: started
|
||||||
enabled: yes
|
enabled: yes
|
||||||
when: ansible_virtualization_type != 'docker'
|
when: ansible_virtualization_type != 'docker'
|
||||||
|
and ansible_service_mgr != "runit"
|
||||||
register: cron_status
|
register: cron_status
|
||||||
until: cron_status.state == "started"
|
until: cron_status.state == "started"
|
||||||
retries: 3
|
retries: 3
|
||||||
delay: 3
|
delay: 3
|
||||||
|
|
||||||
|
- name: General | Software | Services | CROND | Enable (runit)
|
||||||
## CUPS ##
|
|
||||||
|
|
||||||
- name: General | Software | Services | CUPS | Disable
|
|
||||||
service:
|
service:
|
||||||
name: "{{ cups }}"
|
name: "{{ crond }}"
|
||||||
pattern: "{{ cups_pattern }}"
|
state: started
|
||||||
state: stopped
|
enabled: yes
|
||||||
enabled: no
|
when: ansible_virtualization_type != 'docker'
|
||||||
ignore_errors: yes
|
and ansible_service_mgr == "runit"
|
||||||
|
ignore_errors: true # Service module seems experimental for this init system.
|
||||||
- name: General | Software | Services | CUPS-Browse | Disable
|
|
||||||
service:
|
|
||||||
name: "{{ cups_browse }}"
|
|
||||||
pattern: "{{ cups_browse_pattern }}"
|
|
||||||
state: stopped
|
|
||||||
enabled: no
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
|
|
||||||
## SSHD ##
|
## SSHD ##
|
||||||
|
|
||||||
@@ -82,20 +72,20 @@
|
|||||||
state: reloaded
|
state: reloaded
|
||||||
enabled: yes
|
enabled: yes
|
||||||
when: ansible_virtualization_type != 'docker'
|
when: ansible_virtualization_type != 'docker'
|
||||||
|
and ansible_service_mgr != "runit"
|
||||||
register: sshd_status
|
register: sshd_status
|
||||||
until: sshd_status.state == "started"
|
until: sshd_status.state == "started"
|
||||||
retries: 3
|
retries: 3
|
||||||
delay: 3
|
delay: 3
|
||||||
|
|
||||||
|
|
||||||
## JournalCTL ##
|
## JournalCTL ##
|
||||||
|
|
||||||
- name: General | Software | Services | JournalCTL | Reduce Log Size
|
- name: General | Software | Services | JournalCTL | Reduce Log Size
|
||||||
shell: journalctl --vacuum-size=100M
|
shell: journalctl --vacuum-size=100M
|
||||||
when: ansible_system == "Linux"
|
when: ansible_system == "Linux"
|
||||||
|
and ansible_service_mgr == "systemd"
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
|
||||||
|
|
||||||
## Bluetooth ##
|
## Bluetooth ##
|
||||||
# Do people seriously depend on Bluetooth? Plug your devices in, silly!
|
# Do people seriously depend on Bluetooth? Plug your devices in, silly!
|
||||||
# Hehe, I use it now for a few rare things so disabling this for now.
|
# Hehe, I use it now for a few rare things so disabling this for now.
|
||||||
@@ -117,6 +107,7 @@
|
|||||||
state: started
|
state: started
|
||||||
enabled: yes
|
enabled: yes
|
||||||
when: ansible_virtualization_type != 'docker'
|
when: ansible_virtualization_type != 'docker'
|
||||||
|
and ansible_service_mgr != "runit"
|
||||||
register: ntp_status
|
register: ntp_status
|
||||||
until: ntp_status.state == "started"
|
until: ntp_status.state == "started"
|
||||||
retries: 3
|
retries: 3
|
||||||
@@ -128,3 +119,31 @@
|
|||||||
# Add a field to general.yml config file which gets applied via timedatectl and /etc/localtime.
|
# Add a field to general.yml config file which gets applied via timedatectl and /etc/localtime.
|
||||||
# Example of what to do to file:
|
# Example of what to do to file:
|
||||||
# /etc/localtime -> ../usr/share/zoneinfo/America/Phoenix
|
# /etc/localtime -> ../usr/share/zoneinfo/America/Phoenix
|
||||||
|
|
||||||
|
## Disable ##
|
||||||
|
|
||||||
|
- name: General | Software | Services | Disable
|
||||||
|
service:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
pattern: "{{ item.pattern }}"
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
ignore_errors: yes
|
||||||
|
loop:
|
||||||
|
- {name: "{{ cups }}" , pattern: "{{ cups_pattern }}"}
|
||||||
|
- {name: "{{ cups_browse }}", pattern: "{{ cups_browse_pattern }}"}
|
||||||
|
when: ansible_service_mgr != "runit"
|
||||||
|
|
||||||
|
- name: General | Software | Services | Disable (runit)
|
||||||
|
shell: |
|
||||||
|
if [[ -e {{ runit_service_dir }}/{{ item.name }} ]]; then
|
||||||
|
rm -v {{ runit_service_dir }}/{{ item.name }}
|
||||||
|
fi
|
||||||
|
ignore_errors: yes
|
||||||
|
loop:
|
||||||
|
- {name: "{{ cups }}" }
|
||||||
|
- {name: "{{ cups_pattern }}" }
|
||||||
|
- {name: "{{ cups_browse }}" }
|
||||||
|
- {name: "{{ cups_browse_pattern }}"}
|
||||||
|
when: ansible_service_mgr == "runit"
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,17 @@
|
|||||||
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 {{ ansible_service_mgr }} Not Recognized'"
|
||||||
|
|
||||||
|
- name: General | Tests | Services | Set Facts | SystemD
|
||||||
|
set_fact:
|
||||||
services_command: "systemctl list-unit-files"
|
services_command: "systemctl list-unit-files"
|
||||||
|
when: ansible_service_mgr == "systemd"
|
||||||
|
|
||||||
|
- name: General | Tests | Services | Set Facts | runit
|
||||||
|
set_fact:
|
||||||
|
services_command: 'for s in {{ runit_service_dir }}/*; do sv status "$s"; done'
|
||||||
|
when: ansible_service_mgr == "runit"
|
||||||
|
|
||||||
- name: General | Tests | Services | Create Main Report
|
- name: General | Tests | Services | Create Main Report
|
||||||
shell: "{{ item }}"
|
shell: "{{ item }}"
|
||||||
@@ -20,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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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: "" }
|
||||||
@@ -48,11 +52,12 @@
|
|||||||
- { app: "com.brave.Browser", name: "brave", extra: "" }
|
- { app: "com.brave.Browser", name: "brave", extra: "" }
|
||||||
- { app: "net.ankiweb.Anki", name: "anki", extra: "" }
|
- { app: "net.ankiweb.Anki", name: "anki", extra: "" }
|
||||||
- { app: "app.organicmaps.desktop", name: "organic-maps", extra: "" }
|
- { app: "app.organicmaps.desktop", name: "organic-maps", 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: "" }
|
||||||
@@ -97,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}'
|
||||||
@@ -110,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 }}"
|
||||||
@@ -128,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}'
|
||||||
@@ -142,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 }}"
|
||||||
@@ -159,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
|
||||||
@@ -178,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}'
|
||||||
@@ -192,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 }}"
|
||||||
@@ -209,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
|
||||||
@@ -226,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}'
|
||||||
@@ -240,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 }}"
|
||||||
@@ -257,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
|
||||||
@@ -276,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}'
|
||||||
@@ -290,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 }}"
|
||||||
@@ -307,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
|
||||||
@@ -325,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
|
||||||
|
|||||||
@@ -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 ##
|
||||||
|
|
||||||
|
|||||||
@@ -1,47 +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_package: i3
|
|
||||||
i3_light: light
|
|
||||||
i3_config: "settings/i3.config"
|
|
||||||
i3_config_dir: "{{ user_user.home }}/.config/i3"
|
|
||||||
|
|
||||||
- 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 }}"
|
|
||||||
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'
|
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
# 20260730 - Hyperling
|
||||||
|
# Install much more recent Node versions.
|
||||||
|
|
||||||
|
# https://linuxcapable.com/how-to-install-node-js-on-debian-linux/
|
||||||
|
|
||||||
|
- name: Workstation | Software | NodeJS
|
||||||
|
block:
|
||||||
|
|
||||||
|
- name: Workstation | Software | NodeJS | Facts
|
||||||
|
set_fact:
|
||||||
|
node_version: node_24.x
|
||||||
|
|
||||||
|
- name: Workstation | Software | NodeJS | Old | Remove
|
||||||
|
package:
|
||||||
|
name: npm
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Workstation | Software | NodeJS | extrepo | Install
|
||||||
|
package:
|
||||||
|
name: extrepo
|
||||||
|
state: present
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Workstation | Software | NodeJS | extrepo | Enable {{ node_version }}
|
||||||
|
shell: "extrepo enable {{ node_version }}"
|
||||||
|
|
||||||
|
- name: Workstation | Software | NodeJS | Install
|
||||||
|
package:
|
||||||
|
name: nodejs
|
||||||
|
state: latest
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
when: ansible_pkg_mgr == "apt"
|
||||||
|
and coding == true
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
- name: Workstation | Linux | Software | Packages | Install Software (Editing)
|
- name: Workstation | Linux | Software | Packages | Install Software (Editing)
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- "{{ ffmpeg }}"
|
- "{{ ffmpeg }}"
|
||||||
state: present
|
state: present
|
||||||
when: editing in (true, "video", "audio")
|
when: editing in (true, "video", "audio")
|
||||||
|
|
||||||
@@ -36,17 +36,35 @@
|
|||||||
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:
|
||||||
- gnome-shell-extension-gsconnect
|
- gnome-shell-extension-gsconnect
|
||||||
state: present
|
state: present
|
||||||
when: ansible_distribution in ("Debian")
|
when: ansible_distribution in ("Debian")
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
@@ -56,14 +74,13 @@
|
|||||||
- name: Workstation | Linux | Software | Packages | Remove Applications
|
- name: Workstation | Linux | Software | Packages | Remove Applications
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
- "{{ firefox }}"
|
- "{{ thunderbird }}"
|
||||||
- "{{ firefox_esr }}"
|
- "{{ evolution }}"
|
||||||
- "{{ thunderbird }}"
|
- steam
|
||||||
- steam
|
- vscode
|
||||||
- vscode
|
- code
|
||||||
- code
|
- libreoffice
|
||||||
- libreoffice
|
- "*libreoffice*"
|
||||||
- "*libreoffice*"
|
- '*libreoffice*'
|
||||||
- '*libreoffice*'
|
- gimp
|
||||||
- gimp
|
|
||||||
state: absent
|
state: absent
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -31,7 +39,9 @@
|
|||||||
|
|
||||||
- name: Workstation | Linux | Software | TLP | Conflicts | Remove
|
- name: Workstation | Linux | Software | TLP | Conflicts | Remove
|
||||||
package:
|
package:
|
||||||
name: "{{ ppd_package }} {{ acf_package }}"
|
name:
|
||||||
|
- "{{ ppd_package }}"
|
||||||
|
- "{{ acf_package }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
## Install TLP + Associated Software ##
|
## Install TLP + Associated Software ##
|
||||||
@@ -39,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 ##
|
||||||
@@ -64,16 +75,25 @@
|
|||||||
create: yes
|
create: yes
|
||||||
backup: yes
|
backup: yes
|
||||||
loop:
|
loop:
|
||||||
- { "key": '^[\#]?DEVICES_TO_DISABLE_ON_STARTUP', "value": 'DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wifi wwan"'}
|
- { "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"'}
|
||||||
# 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=""'}
|
||||||
- { "key": '^[\#]?DEVICES_TO_ENABLE_ON_AC', "value": '#DEVICES_TO_ENABLE_ON_AC=""'}
|
- { "key": '^[\#]?DEVICES_TO_ENABLE_ON_AC', "value": '#DEVICES_TO_ENABLE_ON_AC=""'}
|
||||||
- { "key": '^[\#]?DEVICES_TO_DISABLE_ON_BAT', "value": '#DEVICES_TO_DISABLE_ON_BAT=""'}
|
- { "key": '^[\#]?DEVICES_TO_DISABLE_ON_BAT', "value": '#DEVICES_TO_DISABLE_ON_BAT=""'}
|
||||||
# Help preserve battery life by not fully charging. #
|
# Help preserve battery life by not fully charging. #
|
||||||
- { "key": '^[\#]?START_CHARGE_THRESH_BAT0', "value": '{{ "" if battery else "#" }}START_CHARGE_THRESH_BAT0=75'}
|
- { "key": '^[\#]?START_CHARGE_THRESH_BAT0', "value": '{{ "" if battery else "#" }}START_CHARGE_THRESH_BAT0=60'}
|
||||||
- { "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=75'}
|
- { "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 ##
|
||||||
|
|
||||||
@@ -84,3 +104,12 @@
|
|||||||
name: "{{ tlp_service }}"
|
name: "{{ tlp_service }}"
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
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"
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,54 @@
|
|||||||
---
|
---
|
||||||
# Install VPN client(s).
|
# Install VPN client(s).
|
||||||
# https://mullvad.net/en/help/install-mullvad-app-linux
|
|
||||||
|
|
||||||
- name: Workstation | Software | VPN | Add Mullvad Repo [apt]
|
- name: Workstation | Software | VPN | Mullvad
|
||||||
shell: "{{ item }}"
|
block:
|
||||||
loop:
|
|
||||||
- sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc
|
|
||||||
- echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mullvad.list
|
|
||||||
- apt update
|
|
||||||
when: ansible_pkg_mgr == "apt"
|
|
||||||
|
|
||||||
- name: Workstation | Software | VPN | Add Mullvad Repo [dnf]
|
# https://mullvad.net/en/help/install-mullvad-app-linux
|
||||||
shell: "{{ item }}"
|
|
||||||
loop:
|
|
||||||
- sudo dnf config-manager --add-repo https://repository.mullvad.net/rpm/stable/mullvad.repo
|
|
||||||
when: ansible_pkg_mgr == "dnf"
|
|
||||||
|
|
||||||
- name: Workstation | Software | VPN | Install
|
- name: Workstation | Software | VPN | Mullvad | Add Repo [apt]
|
||||||
package:
|
shell: "{{ item }}"
|
||||||
name:
|
loop:
|
||||||
- mullvad-vpn
|
- sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc
|
||||||
state: present
|
- echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mullvad.list
|
||||||
|
- apt update
|
||||||
|
when: ansible_pkg_mgr == "apt"
|
||||||
|
|
||||||
|
- name: Workstation | Software | VPN | Mullvad | Add Repo [dnf]
|
||||||
|
shell: "{{ item }}"
|
||||||
|
loop:
|
||||||
|
- sudo dnf config-manager --add-repo https://repository.mullvad.net/rpm/stable/mullvad.repo
|
||||||
|
when: ansible_pkg_mgr == "dnf"
|
||||||
|
|
||||||
|
- name: Workstation | Software | VPN | Install
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- mullvad-vpn
|
||||||
|
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
|
||||||
|
ansible.builtin.file:
|
||||||
|
src: "/opt/Mullvad VPN/mullvad-vpn"
|
||||||
|
dest: "{{ global_bin }}/mullvad-vpn"
|
||||||
|
state: link
|
||||||
|
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")
|
||||||
|
|
||||||
|
# TBD: VPNs for distros like Devuan.
|
||||||
|
|||||||
@@ -7,64 +7,72 @@
|
|||||||
# This also exists but was not utilized:
|
# This also exists but was not utilized:
|
||||||
# https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo
|
# https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo
|
||||||
|
|
||||||
## Facts ##
|
- name: Workstation | Linux | Software | VS Codium
|
||||||
|
block:
|
||||||
|
|
||||||
# Paths
|
## Facts ##
|
||||||
|
|
||||||
|
# Paths
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | VS Codium | Facts
|
||||||
|
set_fact:
|
||||||
|
vscodium_source_list: "/etc/apt/sources.list.d/vscodium.list"
|
||||||
|
vscodium_keyfile: "/usr/share/keyrings/vscodium.gpg"
|
||||||
|
|
||||||
|
# Checks
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | VS Codium | Check PPA
|
||||||
|
stat:
|
||||||
|
path: "{{ vscodium_source_list }}"
|
||||||
|
get_attributes: false
|
||||||
|
get_checksum: false
|
||||||
|
get_mime: false
|
||||||
|
register: vscodium_source_exists
|
||||||
|
|
||||||
|
## Install Repo ##
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | VS Codium | Add PPA
|
||||||
|
shell: "{{ item }}"
|
||||||
|
loop:
|
||||||
|
- "wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \
|
||||||
|
| gpg --dearmor \
|
||||||
|
| sudo tee {{ vscodium_keyfile }} > /dev/null"
|
||||||
|
- "echo 'deb [arch=amd64,arm64 signed-by={{ vscodium_keyfile }}] https://download.vscodium.com/debs vscodium main' \
|
||||||
|
| sudo tee {{ vscodium_source_list }}"
|
||||||
|
- "sudo apt update"
|
||||||
|
when: coding == true
|
||||||
|
and not vscodium_source_exists.stat.exists
|
||||||
|
|
||||||
|
## Install Package ##
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | VS Codium | Install
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- codium
|
||||||
|
state: present
|
||||||
|
when: ansible_pkg_mgr == "apt"
|
||||||
|
and coding == true
|
||||||
|
|
||||||
|
## Remove Package ##
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | VS Codium | Uninstall
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- codium
|
||||||
|
state: absent
|
||||||
|
when: coding != true
|
||||||
|
|
||||||
|
## Remove Repo ##
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | VS Codium | Remove PPA
|
||||||
|
shell: "{{ item }}"
|
||||||
|
loop:
|
||||||
|
- "mv {{ vscodium_source_list }} ~/TRASH/"
|
||||||
|
- "mv /etc/apt/keyrings/vscodium*.gpg ~/TRASH/"
|
||||||
|
- "sudo apt update"
|
||||||
|
when: coding != true
|
||||||
|
and vscodium_source_exists.stat.exists
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | VS Codium | Facts
|
|
||||||
set_fact:
|
|
||||||
vscodium_source_list: "/etc/apt/sources.list.d/vscodium.list"
|
|
||||||
vscodium_keyfile: "/usr/share/keyrings/vscodium.gpg"
|
|
||||||
when: ansible_pkg_mgr == "apt"
|
when: ansible_pkg_mgr == "apt"
|
||||||
|
and ansible_distribution in ("Debian", "Ubuntu")
|
||||||
|
|
||||||
# Checks
|
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | VS Codium | Check PPA
|
|
||||||
stat:
|
|
||||||
path: "{{ vscodium_source_list }}"
|
|
||||||
get_attributes: false
|
|
||||||
get_checksum: false
|
|
||||||
get_mime: false
|
|
||||||
register: vscodium_source_exists
|
|
||||||
when: ansible_pkg_mgr == "apt"
|
|
||||||
|
|
||||||
## Install Repo ##
|
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | VS Codium | Add PPA
|
|
||||||
shell: "{{ item }}"
|
|
||||||
loop:
|
|
||||||
- "wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \
|
|
||||||
| gpg --dearmor \
|
|
||||||
| sudo tee {{ vscodium_keyfile }} > /dev/null"
|
|
||||||
- "echo 'deb [arch=amd64,arm64 signed-by={{ vscodium_keyfile }}] https://download.vscodium.com/debs vscodium main' \
|
|
||||||
| sudo tee {{ vscodium_source_list }}"
|
|
||||||
- "sudo apt update"
|
|
||||||
when: ansible_pkg_mgr == "apt" and coding == true and not vscodium_source_exists.stat.exists
|
|
||||||
|
|
||||||
## Install Package ##
|
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | VS Codium | Install
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
- codium
|
|
||||||
state: present
|
|
||||||
when: ansible_pkg_mgr == "apt" and coding == true
|
|
||||||
|
|
||||||
## Remove Package ##
|
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | VS Codium | Uninstall
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
- codium
|
|
||||||
state: absent
|
|
||||||
when: ansible_pkg_mgr == "apt" and coding != true
|
|
||||||
|
|
||||||
## Remove Repo ##
|
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | VS Codium | Remove PPA
|
|
||||||
shell: "{{ item }}"
|
|
||||||
loop:
|
|
||||||
- "mv {{ vscodium_source_list }} ~/TRASH/"
|
|
||||||
- "mv /etc/apt/keyrings/vscodium*.gpg ~/TRASH/"
|
|
||||||
- "sudo apt update"
|
|
||||||
when: ansible_pkg_mgr == "apt" and coding != true and vscodium_source_exists.stat.exists
|
|
||||||
|
|||||||
@@ -0,0 +1,338 @@
|
|||||||
|
---
|
||||||
|
# 20260731 - Hyperling
|
||||||
|
# Cinnakon settings, copied from GNOME settings.
|
||||||
|
|
||||||
|
# Temporarily removed while it's broken:
|
||||||
|
# , 'com.vscodium.codium.desktop', 'codium.desktop'
|
||||||
|
- name: Workstation | Account Management | Cinnamon | Facts
|
||||||
|
set_fact:
|
||||||
|
# Only do multiple entries per line if they are for the same exact program.
|
||||||
|
cinnamon_favorites: "[ 'org.gnome.Terminal.desktop'
|
||||||
|
, 'org.gnome.Console.desktop'
|
||||||
|
, 'gnome-system-monitor.desktop', 'org.gnome.SystemMonitor.desktop'
|
||||||
|
, 'org.gnome.Nautilus.desktop'
|
||||||
|
, 'io.gitlab.librewolf-community.desktop', 'librewolf.desktop'
|
||||||
|
, 'org.mozilla.firefox.desktop', 'firefox.desktop'
|
||||||
|
, 'com.vscodium.codium.desktop'
|
||||||
|
, 'codium.desktop'
|
||||||
|
, 'org.shotcut.Shotcut.desktop'
|
||||||
|
, 'io.lmms.LMMS.desktop'
|
||||||
|
, 'app.grayjay.Grayjay.desktop'
|
||||||
|
, 'io.lbry.lbry-app.desktop', 'lbry.desktop'
|
||||||
|
, 'com.valvesoftware.Steam.desktop'
|
||||||
|
, 'net.lutris.Lutris.desktop'
|
||||||
|
, 'mullvad-vpn.desktop'
|
||||||
|
, 'network.loki.Session.desktop'
|
||||||
|
, 'org.signal.Signal.desktop', 'signal-desktop.desktop'
|
||||||
|
, 'org.telegram.desktop.desktop'
|
||||||
|
, 'com.discordapp.Discord.desktop'
|
||||||
|
]"
|
||||||
|
dconf_terminal: gnome-terminal
|
||||||
|
dconf_theme: Adwaita-dark
|
||||||
|
dconf_icons: Adwaita
|
||||||
|
# 2024-01-28 Not currently using local email clients.
|
||||||
|
#, 'org.gnome.Evolution.desktop'
|
||||||
|
#, 'chat.delta.desktop.desktop', 'deltachat.desktop'
|
||||||
|
#, 'org.gnome.Geary.desktop'
|
||||||
|
#, 'org.mozilla.Thunderbird.desktop'
|
||||||
|
# 2025-01-01
|
||||||
|
# Reduce the amount of icons on the sidebar, things that may get added back.
|
||||||
|
#, 'org.godotengine.Godot.desktop'
|
||||||
|
# 2025-03-07 Removed in place of a 2nd VS Codium install (apt version).
|
||||||
|
#, 'com.visualstudio.code-oss.desktop', 'code-oss.desktop'
|
||||||
|
# 2025-03-21 Not really using Android Studio now that Flutter is working.
|
||||||
|
#, 'com.google.AndroidStudio.desktop'
|
||||||
|
# 2025-08-31 Not used a whole lot, installed again just to explore.
|
||||||
|
#, 'im.riot.Riot.desktop'
|
||||||
|
#, 'chat.simplex.simplex.desktop'
|
||||||
|
|
||||||
|
- name: Workstation | Account Management | Cinnamon | Facts (NixOS)
|
||||||
|
set_fact:
|
||||||
|
dconf_terminal: kgx
|
||||||
|
when: ansible_distribution in ("NixOS")
|
||||||
|
|
||||||
|
- name: Workstation | Account Management | Cinnamon | Facts (Ubuntu)
|
||||||
|
set_fact:
|
||||||
|
dconf_theme: Yaru-purple-dark
|
||||||
|
dconf_icons: Yaru-purple-dark
|
||||||
|
when: ansible_distribution in ("Ubuntu")
|
||||||
|
|
||||||
|
# Make sure Gnome-Tweaks is installed
|
||||||
|
- name: Workstation | Account Management | Cinnamon | Install Dependencies
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- "{{ gnome_tweaks }}"
|
||||||
|
- "{{ dconf_editor }}"
|
||||||
|
- "{{ psutil }}"
|
||||||
|
state: present
|
||||||
|
when: ansible_distribution not in ("NixOS")
|
||||||
|
|
||||||
|
# Apply dconf settings through RC files due to distros without working psutil.
|
||||||
|
# Use the command 'dconf watch /' then change settings to see find these values.
|
||||||
|
- name: Workstation | Account Management | Cinnamon | Settings
|
||||||
|
blockinfile:
|
||||||
|
path: "{{ user_user.home }}/{{ item }}"
|
||||||
|
block: |
|
||||||
|
# Disable Cinnamon Settings While Converting From GNOME
|
||||||
|
if [[ 1 == 0 ]]; then
|
||||||
|
|
||||||
|
## Temporary Variables + Functions ##
|
||||||
|
|
||||||
|
dconf_count=1
|
||||||
|
function inc_dconf() {
|
||||||
|
dconf_count=$(( dconf_count + 1 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
## Dash to Dock ##
|
||||||
|
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/dock-position \
|
||||||
|
"'LEFT'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/dock-fixed \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/dash-max-icon-size \
|
||||||
|
24 && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/shell/favorite-apps \
|
||||||
|
"{{ gnome_favorites }}" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/apply-custom-theme \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/custom-theme-shrink \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/dock-fixed \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/shell/extensions/dash-to-dock/intellihide-mode \
|
||||||
|
"'ALL_WINDOWS'" && inc_dconf &&
|
||||||
|
|
||||||
|
## Generic ##
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/interface/color-scheme \
|
||||||
|
"'prefer-dark'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/interface/gtk-theme \
|
||||||
|
"'{{ dconf_theme }}'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/interface/icon-theme \
|
||||||
|
"'{{ dconf_icons }}'" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/interface/clock-show-date \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/interface/clock-format \
|
||||||
|
"'24h'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/interface/clock-show-seconds \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/interface/clock-show-weekday \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/calendar/show-weekdate \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/interface/show-battery-percentage \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/wm/preferences/button-layout \
|
||||||
|
"'appmenu:minimize,maximize,close'" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/wm/preferences/num-workspaces \
|
||||||
|
1 && inc_dconf &&
|
||||||
|
dconf write /org/gnome/mutter/dynamic-workspaces \
|
||||||
|
false && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/mutter/edge-tiling \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/interface/enable-hot-corners \
|
||||||
|
false && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/mutter/center-new-windows \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/notifications/show-banners \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution-alarm-notify/enable-sound-alerts \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution-alarm-notify/enable \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution/enable-sound-alerts \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/notifications/application/org-gnome-evolution/enable \
|
||||||
|
false && inc_dconf &&
|
||||||
|
|
||||||
|
# Stop Update Notifications
|
||||||
|
|
||||||
|
dconf write /org/gnome/software/allow-updates \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/software/download-updates \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/software/download-updates-notify \
|
||||||
|
false && inc_dconf &&
|
||||||
|
|
||||||
|
# Red Mode (Night Light)
|
||||||
|
(
|
||||||
|
typeset -l redmode
|
||||||
|
redmode="{{ redmode }}"
|
||||||
|
if [[ $redmode == "true" ]]; then
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/color/night-light-enabled \
|
||||||
|
true && inc_dconf
|
||||||
|
fi
|
||||||
|
) &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-automatic \
|
||||||
|
false && inc_dconf &&
|
||||||
|
#dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-from \
|
||||||
|
# 2.0 && inc_dconf &&
|
||||||
|
#dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-to \
|
||||||
|
# 1.99 && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-from \
|
||||||
|
19.00 && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-to \
|
||||||
|
07.00 && inc_dconf &&
|
||||||
|
|
||||||
|
# 1700 is max through GNOME Settings, looks pretty red but can still see green vs blue.
|
||||||
|
# 1200 is max on f.lux type apps, pretty difficult to see the difference between green and blue.
|
||||||
|
# 0500 is the max on Red Moon, super intense on a laptop, not as much on a phone screen.
|
||||||
|
# - Basically makes everything like the dash of a Z31 300ZX, lol.
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/color/night-light-temperature \
|
||||||
|
"uint32 1700" && inc_dconf &&
|
||||||
|
|
||||||
|
## Keyboard Shortcuts ##
|
||||||
|
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding \
|
||||||
|
"'<Control><Alt>t'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command \
|
||||||
|
"'{{ dconf_terminal }}'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name \
|
||||||
|
"'Open Terminal'" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding \
|
||||||
|
"'<Super>t'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command \
|
||||||
|
"'{{ dconf_terminal }}'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name \
|
||||||
|
"'Open Terminal 2'" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings "
|
||||||
|
[ '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/'
|
||||||
|
, '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/'
|
||||||
|
]" && inc_dconf &&
|
||||||
|
|
||||||
|
## Privacy ##
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/privacy/disable-camera \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/privacy/disable-microphone \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/privacy/recent-files-max-age \
|
||||||
|
7 && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/privacy/remember-recent-files \
|
||||||
|
false && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/privacy/old-files-age \
|
||||||
|
"uint32 14" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/privacy/remove-old-trash-files \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/privacy/remove-old-temp-files \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/notifications/show-in-lock-screen \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/screensaver/lock-enabled \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/screensaver/lock-delay \
|
||||||
|
"uint32 0" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/session/idle-delay \
|
||||||
|
"uint32 900" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-type \
|
||||||
|
"'nothing'" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/settings-daemon/plugins/power/power-button-action \
|
||||||
|
"'nothing'" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/media-handling/autorun-never \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
## Gnome Terminal ##
|
||||||
|
|
||||||
|
# TBD: Do not start new tabs in previous tab's directory.
|
||||||
|
# The profile ID is likely unique and will need to be retrieved first.
|
||||||
|
#/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/preserve-working-directory
|
||||||
|
#'never'
|
||||||
|
|
||||||
|
## Wellbeing ##
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/screen-time-limits/daily-limit-enabled \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/screen-time-limits/daily-limit-seconds \
|
||||||
|
"uint32 33333" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/screen-time-limits/grayscale \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/screen-time-limits/history-enabled \
|
||||||
|
true && inc_dconf &&
|
||||||
|
|
||||||
|
#dconf write /org/gnome/desktop/break-reminders/selected-breaks \
|
||||||
|
# "['eyesight', 'movement']" && inc_dconf &&
|
||||||
|
#dconf write /org/gnome/desktop/break-reminders/selected-breaks \
|
||||||
|
# "['movement']" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/selected-breaks \
|
||||||
|
"@as []" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/duration-seconds \
|
||||||
|
"uint32 180" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/interval-seconds \
|
||||||
|
"uint32 1800" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/countdown \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/delay-seconds \
|
||||||
|
"uint32 180" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/fade-screen \
|
||||||
|
true && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/notify \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/notify-overdue \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/notify-upcoming \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/play-sound \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/eyesight/interval-seconds \
|
||||||
|
"uint32 1800" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/duration-seconds \
|
||||||
|
"uint32 180" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/interval-seconds \
|
||||||
|
"uint32 1800" && inc_dconf &&
|
||||||
|
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/countdown \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/delay-seconds \
|
||||||
|
"uint32 60" && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/fade-screen \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/notify \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/notify-overdue \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/notify-upcoming \
|
||||||
|
false && inc_dconf &&
|
||||||
|
dconf write /org/gnome/desktop/break-reminders/movement/play-sound \
|
||||||
|
false && inc_dconf &&
|
||||||
|
|
||||||
|
## Success ##
|
||||||
|
|
||||||
|
sleep 0 ||
|
||||||
|
|
||||||
|
## Error Catch ##
|
||||||
|
|
||||||
|
echo "ERROR: DConf setting# $dconf_count failed!"
|
||||||
|
|
||||||
|
## Cleanup ##
|
||||||
|
|
||||||
|
unset -f inc_dconf
|
||||||
|
unset dconf_count
|
||||||
|
|
||||||
|
fi # End Disable Cinnamon Settings
|
||||||
|
marker: '# {mark} MANAGED BY ANSIBLE | Cinnamon Settings'
|
||||||
|
state: present
|
||||||
|
create: yes
|
||||||
|
backup: yes
|
||||||
|
become_user: "{{ user }}"
|
||||||
|
loop:
|
||||||
|
- .bashrc
|
||||||
|
- .zshrc
|
||||||
@@ -428,7 +428,7 @@
|
|||||||
|
|
||||||
unset -f inc_dconf
|
unset -f inc_dconf
|
||||||
unset dconf_count
|
unset dconf_count
|
||||||
marker: '# {mark} MANAGED BY ANSIBLE | NixOS GNOME Settings'
|
marker: '# {mark} MANAGED BY ANSIBLE | GNOME Settings'
|
||||||
state: present
|
state: present
|
||||||
create: yes
|
create: yes
|
||||||
backup: yes
|
backup: yes
|
||||||
@@ -436,3 +436,18 @@
|
|||||||
loop:
|
loop:
|
||||||
- .bashrc
|
- .bashrc
|
||||||
- .zshrc
|
- .zshrc
|
||||||
|
|
||||||
|
# Remove the dconf settings which had the marker related to NixOS.
|
||||||
|
- name: Workstation | Account Management | GNOME | Settings (NixOS)
|
||||||
|
blockinfile:
|
||||||
|
path: "{{ user_user.home }}/{{ item }}"
|
||||||
|
block: |
|
||||||
|
# TBD: No longer used. Remove in 2027.
|
||||||
|
marker: '# {mark} MANAGED BY ANSIBLE | NixOS GNOME Settings'
|
||||||
|
state: present
|
||||||
|
create: no
|
||||||
|
backup: no
|
||||||
|
become_user: "{{ user }}"
|
||||||
|
loop:
|
||||||
|
- .bashrc
|
||||||
|
- .zshrc
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user