mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-06-25 11:45:32 +02:00
Compare commits
7 Commits
7042f28a79
...
c628c1edcd
Author | SHA1 | Date | |
---|---|---|---|
c628c1edcd | |||
28ebb675a7 | |||
080b46329e | |||
663e5604fd | |||
b488ea949f | |||
7a8a22a3a8 | |||
213b74ff84 |
12
Makefile
12
Makefile
@ -1,12 +0,0 @@
|
|||||||
.PHONY: install deinstall refresh
|
|
||||||
|
|
||||||
install:
|
|
||||||
$(MAKE) -C docs html $(MAKEFLAGS)
|
|
||||||
$(MAKE) -C docs install $(MAKEFLAGS)
|
|
||||||
|
|
||||||
deinstall:
|
|
||||||
$(MAKE) -C docs clean $(MAKEFLAGS)
|
|
||||||
|
|
||||||
refresh:
|
|
||||||
$(MAKE) -C docs clean $(MAKEFLAGS)
|
|
||||||
$(MAKE) -C docs html $(MAKEFLAGS)
|
|
@ -166,6 +166,12 @@ defaults_applications:
|
|||||||
css_enabled: "{{css_enabled_default}}" # Enables\Disables Global CSS Style
|
css_enabled: "{{css_enabled_default}}" # Enables\Disables Global CSS Style
|
||||||
landingpage_iframe_enabled: "{{landingpage_iframe_enabled_default}}" # Enables\Disables the possibility to embed this on landing page via iframe
|
landingpage_iframe_enabled: "{{landingpage_iframe_enabled_default}}" # Enables\Disables the possibility to embed this on landing page via iframe
|
||||||
|
|
||||||
|
## Gnome
|
||||||
|
gnome:
|
||||||
|
plugins:
|
||||||
|
- [enable,nasa_apod@elinvention.ovh,https://github.com/Elinvention/gnome-shell-extension-nasa-apod.git]
|
||||||
|
- [disable,dash-to-dock@micxgx.gmail.com,'']
|
||||||
|
|
||||||
## Joomla
|
## Joomla
|
||||||
joomla:
|
joomla:
|
||||||
version: "latest"
|
version: "latest"
|
||||||
|
9
main.py
9
main.py
@ -9,7 +9,7 @@ def run_ansible_vault(action, filename, password_file):
|
|||||||
cmd = ["ansible-vault", action, filename, "--vault-password-file", password_file]
|
cmd = ["ansible-vault", action, filename, "--vault-password-file", password_file]
|
||||||
subprocess.run(cmd, check=True)
|
subprocess.run(cmd, check=True)
|
||||||
|
|
||||||
def run_ansible_playbook(inventory:str, playbook:str, modes:[bool], limit:str=None, password_file:str=None, verbose:bool=False):
|
def run_ansible_playbook(inventory: str, playbook: str, modes: dict, limit: str = None, password_file: str = None, verbose: int = 0):
|
||||||
"""Execute an ansible-playbook command with optional parameters."""
|
"""Execute an ansible-playbook command with optional parameters."""
|
||||||
cmd = ["ansible-playbook", "-i", inventory, playbook]
|
cmd = ["ansible-playbook", "-i", inventory, playbook]
|
||||||
|
|
||||||
@ -28,7 +28,8 @@ def run_ansible_playbook(inventory:str, playbook:str, modes:[bool], limit:str=No
|
|||||||
cmd.extend(["--ask-vault-pass"])
|
cmd.extend(["--ask-vault-pass"])
|
||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
cmd.append("-v")
|
# Append a single flag with multiple "v"s (e.g. -vvv)
|
||||||
|
cmd.append("-" + "v" * verbose)
|
||||||
|
|
||||||
subprocess.run(cmd, check=True)
|
subprocess.run(cmd, check=True)
|
||||||
|
|
||||||
@ -59,7 +60,9 @@ def main():
|
|||||||
playbook_parser.add_argument("--cleanup", action="store_true", help="Enable cleanup mode")
|
playbook_parser.add_argument("--cleanup", action="store_true", help="Enable cleanup mode")
|
||||||
playbook_parser.add_argument("--debug", action="store_true", help="Enable debugging output")
|
playbook_parser.add_argument("--debug", action="store_true", help="Enable debugging output")
|
||||||
playbook_parser.add_argument("--password-file", help="Path to the Vault password file")
|
playbook_parser.add_argument("--password-file", help="Path to the Vault password file")
|
||||||
playbook_parser.add_argument("-v", "--verbose", action="store_true", help="Enable verbose output")
|
playbook_parser.add_argument("-v", "--verbose", action="count", default=0,
|
||||||
|
help=("Increase verbosity. This option can be specified multiple times "
|
||||||
|
"to increase the verbosity level (e.g., -vvv for more detailed debug output)."))
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
- name: install directory-validator
|
- name: install directory-validator
|
||||||
command:
|
command:
|
||||||
cmd: "pkgmgr install directory-validator"
|
cmd: "pkgmgr install directory-validator --clone-mode https"
|
||||||
when: run_once_backup_directory_validator is not defined
|
when: run_once_backup_directory_validator is not defined
|
||||||
|
|
||||||
- name: run the backup_directory_validator tasks once
|
- name: run the backup_directory_validator tasks once
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
- name: install backup-docker-to-local
|
- name: install backup-docker-to-local
|
||||||
command:
|
command:
|
||||||
cmd: "pkgmgr install backup-docker-to-local"
|
cmd: "pkgmgr install backup-docker-to-local --clone-mode https"
|
||||||
when: run_once_backup_docker_to_local is not defined
|
when: run_once_backup_docker_to_local is not defined
|
||||||
|
|
||||||
- name: Retrieve backup-docker-to-local path from pkgmgr
|
- name: Retrieve backup-docker-to-local path from pkgmgr
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
- name: install cleanup-failed-docker-backups
|
- name: install cleanup-failed-docker-backups
|
||||||
command:
|
command:
|
||||||
cmd: "pkgmgr install cleanup-failed-docker-backups"
|
cmd: "pkgmgr install cleanup-failed-docker-backups --clone-mode https"
|
||||||
when: run_once_cleanup_failed_docker_backups is not defined
|
when: run_once_cleanup_failed_docker_backups is not defined
|
||||||
|
|
||||||
- name: Retrieve backup-docker-to-local path from pkgmgr
|
- name: Retrieve backup-docker-to-local path from pkgmgr
|
||||||
|
24
roles/fakeroot/README.md
Normal file
24
roles/fakeroot/README.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Fakeroot
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This Ansible role installs **fakeroot** on Arch Linux systems using the Pacman package manager. Fakeroot enables non-privileged users to simulate root-level file manipulations—ideal for building packages or performing file operations that normally require root permissions.
|
||||||
|
|
||||||
|
Learn more about fakeroot on [Wikipedia](https://en.wikipedia.org/wiki/Fakeroot) and check out its details on the [Arch Linux Package Repository](https://archlinux.org/packages/?q=fakeroot).
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The purpose of this role is to automate the installation of fakeroot so that users can simulate superuser operations without requiring elevated privileges. This is particularly useful in development environments and during package building processes.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Automated Installation:** Uses Pacman to install fakeroot.
|
||||||
|
- **Idempotent Execution:** Ensures that fakeroot is installed and remains up to date.
|
||||||
|
- **Simplified Setup:** Minimizes manual installation steps for environments where fakeroot is required.
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
|
||||||
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
21
roles/fakeroot/meta/main.yml
Normal file
21
roles/fakeroot/meta/main.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: "Installs fakeroot on Arch Linux using Pacman, enabling non-privileged file manipulations required for package building and development."
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
company: |
|
||||||
|
Kevin Veen-Birkenbach
|
||||||
|
Consulting & Coaching Solutions
|
||||||
|
https://www.veen.world
|
||||||
|
min_ansible_version: "2.9"
|
||||||
|
platforms:
|
||||||
|
- name: Archlinux
|
||||||
|
versions:
|
||||||
|
- rolling
|
||||||
|
galaxy_tags:
|
||||||
|
- fakeroot
|
||||||
|
- pacman
|
||||||
|
- archlinux
|
||||||
|
- development
|
||||||
|
dependencies: []
|
11
roles/fakeroot/tasks/main.yml
Normal file
11
roles/fakeroot/tasks/main.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: Install fakeroot
|
||||||
|
pacman:
|
||||||
|
name: fakeroot
|
||||||
|
state: present
|
||||||
|
when: run_once_fakeroot is not defined
|
||||||
|
|
||||||
|
- name: run the fakeroot tasks once
|
||||||
|
set_fact:
|
||||||
|
run_once_fakeroot: true
|
||||||
|
when: run_once_fakeroot is not defined
|
28
roles/make/README.md
Normal file
28
roles/make/README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Make Installation
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This Ansible role installs GNU Make on Arch Linux systems using the Pacman package manager. GNU Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles.
|
||||||
|
|
||||||
|
Learn more about GNU Make on the [GNU Make Homepage](https://www.gnu.org/software/make/).
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This role ensures that GNU Make is installed on the target system. It is intended for environments where automated build processes or custom software compilation are required.
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The purpose of this role is to provide an automated, idempotent installation of GNU Make, ensuring that the tool is available system-wide for building software. It is ideal for developers and system administrators who require a reliable build system.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Installs GNU Make:** Uses Pacman to install the `make` package.
|
||||||
|
- **Idempotent Execution:** Ensures that Make is installed only once.
|
||||||
|
- **System-Wide Availability:** Makes GNU Make available for all users on the system.
|
||||||
|
|
||||||
|
## Credits 📝
|
||||||
|
|
||||||
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
|
||||||
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
20
roles/make/meta/main.yml
Normal file
20
roles/make/meta/main.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: "Installs GNU Make using the Pacman package manager on Arch Linux systems."
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
company: |
|
||||||
|
Kevin Veen-Birkenbach
|
||||||
|
Consulting & Coaching Solutions
|
||||||
|
https://www.veen.world
|
||||||
|
min_ansible_version: "2.9"
|
||||||
|
platforms:
|
||||||
|
- name: Archlinux
|
||||||
|
versions:
|
||||||
|
- rolling
|
||||||
|
galaxy_tags:
|
||||||
|
- make
|
||||||
|
- build
|
||||||
|
- automation
|
||||||
|
- archlinux
|
||||||
|
dependencies: []
|
4
roles/make/tasks/main.yml
Normal file
4
roles/make/tasks/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- name: install make
|
||||||
|
pacman:
|
||||||
|
name: make
|
||||||
|
state: present
|
@ -34,3 +34,4 @@ galaxy_info:
|
|||||||
documentation: https://github.com/kevinveenbirkenbach/package-manager
|
documentation: https://github.com/kevinveenbirkenbach/package-manager
|
||||||
dependencies:
|
dependencies:
|
||||||
- git
|
- git
|
||||||
|
- make
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
---
|
---
|
||||||
|
- name: Ensure GitHub host key is in known_hosts
|
||||||
|
known_hosts:
|
||||||
|
path: "~/.ssh/known_hosts"
|
||||||
|
name: github.com
|
||||||
|
key: "{{ lookup('pipe', 'ssh-keyscan -t ed25519 github.com | grep -v \"^#\"') }}"
|
||||||
|
become: yes
|
||||||
|
|
||||||
- name: Create installation directory for Kevin's Package Manager
|
- name: Create installation directory for Kevin's Package Manager
|
||||||
file:
|
file:
|
||||||
path: "{{ pkgmgr_install_path }}"
|
path: "{{ pkgmgr_install_path }}"
|
||||||
@ -31,7 +38,7 @@
|
|||||||
when: run_once_package_manager is not defined
|
when: run_once_package_manager is not defined
|
||||||
|
|
||||||
- name: Run the Package Manager install command to create an alias for Kevins package manager
|
- name: Run the Package Manager install command to create an alias for Kevins package manager
|
||||||
command: "{{ pkgmgr_install_command }}"
|
command: "make setup"
|
||||||
args:
|
args:
|
||||||
chdir: "{{ pkgmgr_install_path }}"
|
chdir: "{{ pkgmgr_install_path }}"
|
||||||
become: yes
|
become: yes
|
||||||
|
@ -15,6 +15,3 @@ pkgmgr_config_path: "{{pkgmgr_install_path}}/config/config.yaml"
|
|||||||
|
|
||||||
# The directory where executable aliases will be installed (ensure it's in your PATH)
|
# The directory where executable aliases will be installed (ensure it's in your PATH)
|
||||||
binaries_directory: "/usr/local/bin"
|
binaries_directory: "/usr/local/bin"
|
||||||
|
|
||||||
# The command to run to install/update the Package Manager's aliases
|
|
||||||
pkgmgr_install_command: "./main.py install pkgmgr"
|
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- pc-git
|
- pc-git
|
||||||
|
- make
|
@ -3,7 +3,6 @@
|
|||||||
name:
|
name:
|
||||||
- base-devel
|
- base-devel
|
||||||
- yay
|
- yay
|
||||||
- make
|
|
||||||
- gcc
|
- gcc
|
||||||
- cmake
|
- cmake
|
||||||
- fdupes
|
- fdupes
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
# Ansible Role: caffeine_auto_start
|
|
||||||
|
|
||||||
An Ansible Role that installs `caffeine-ng` on Archlinux systems and sets it to start automatically when the user logs in.
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
- The target system should be Archlinux.
|
|
||||||
- Ansible 2.4 or higher.
|
|
||||||
- The [kewlfft.aur.aur](https://galaxy.ansible.com/kewlfft/aur) Ansible Galaxy role for managing AUR packages.
|
|
||||||
|
|
||||||
## Role Variables
|
|
||||||
|
|
||||||
None.
|
|
||||||
|
|
||||||
## Author
|
|
||||||
|
|
||||||
Kevin Veen-Birkenbach - kevin@veen.world - https://www.veen.world/
|
|
||||||
|
|
||||||
## Background
|
|
||||||
|
|
||||||
The code for this role was created in an interactive conversation with OpenAI's language model. You can view the original conversation [here](https://chat.openai.com/share/fa846dac-6068-4386-b3e7-b75f1248ec82).
|
|
@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
dependencies:
|
|
||||||
- system-aur-helper
|
|
||||||
galaxy_info:
|
|
||||||
author: Kevin Veen-Birkenbach
|
|
||||||
description: Ansible role for installing caffeine-ng and setting it to start at user login.
|
|
||||||
min_ansible_version: 2.4
|
|
||||||
platforms:
|
|
||||||
- name: Archlinux
|
|
||||||
versions:
|
|
||||||
- all
|
|
||||||
galaxy_tags:
|
|
||||||
- caffeine
|
|
||||||
- autostart
|
|
||||||
- archlinux
|
|
23
roles/pc-gnome-caffeine/README.md
Normal file
23
roles/pc-gnome-caffeine/README.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# GNOME Caffeine Setup
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This role installs [caffeine-ng](https://codeberg.org/WhyNotHugo/caffeine-ng), a utility that prevents your GNOME desktop from entering sleep mode or activating the screensaver automatically. It also ensures that caffeine-ng is set to autostart at user login.
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The purpose of this role is to ensure uninterrupted workflow by keeping the desktop active during long-running tasks or presentations. By automatically starting caffeine-ng, it prevents unwanted screen locking or sleep modes on GNOME systems.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Installs caffeine-ng from the AUR using an AUR helper.
|
||||||
|
- Creates the autostart directory if it does not exist.
|
||||||
|
- Deploys a customized desktop entry to ensure caffeine-ng starts automatically.
|
||||||
|
- Enhances user experience by maintaining an active desktop environment.
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
|
||||||
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
17
roles/pc-gnome-caffeine/meta/main.yml
Normal file
17
roles/pc-gnome-caffeine/meta/main.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: "Installs caffeine-ng and configures it to autostart for preventing screen sleep on GNOME."
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
min_ansible_version: "2.4"
|
||||||
|
platforms:
|
||||||
|
- name: Archlinux
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
galaxy_tags:
|
||||||
|
- caffeine
|
||||||
|
- autostart
|
||||||
|
- archlinux
|
||||||
|
dependencies:
|
||||||
|
- system-aur-helper
|
25
roles/pc-gnome-extensions/README.md
Normal file
25
roles/pc-gnome-extensions/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# GNOME Extensions Manager
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This role manages GNOME Shell extensions by ensuring user extensions are enabled and by installing the CLI GNOME Extension Manager. The CLI tool facilitates the configuration and control of GNOME extensions via the command line.
|
||||||
|
|
||||||
|
Learn more about the CLI tool on its [GitHub page](https://github.com/kevinveenbirkenbach/cli-gnome-extension-manager) and about GNOME Extensions at [GNOME Extensions](https://extensions.gnome.org).
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The purpose of this role is to enhance and customize the GNOME desktop environment by managing shell extensions. It simplifies the process of installing and configuring extensions, thereby improving productivity and desktop functionality.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Activates GNOME Shell extensions via gsettings.
|
||||||
|
- Installs the CLI GNOME Extension Manager using the package manager.
|
||||||
|
- Executes extension configuration commands for streamlined management.
|
||||||
|
- Provides an automated method for managing and updating GNOME extensions.
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
|
||||||
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
21
roles/pc-gnome-extensions/meta/main.yml
Normal file
21
roles/pc-gnome-extensions/meta/main.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: "Configures GNOME Shell extensions and installs the CLI GNOME Extension Manager for managing extensions."
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
company: |
|
||||||
|
Kevin Veen-Birkenbach
|
||||||
|
Consulting & Coaching Solutions
|
||||||
|
https://www.veen.world
|
||||||
|
min_ansible_version: "2.9"
|
||||||
|
platforms:
|
||||||
|
- name: Archlinux
|
||||||
|
versions:
|
||||||
|
- rolling
|
||||||
|
galaxy_tags:
|
||||||
|
- gnome
|
||||||
|
- extensions
|
||||||
|
- automation
|
||||||
|
dependencies:
|
||||||
|
- package-manager
|
13
roles/pc-gnome-extensions/tasks/main.yml
Normal file
13
roles/pc-gnome-extensions/tasks/main.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
- name: GNOME Activate Extensions
|
||||||
|
ansible.builtin.shell: gsettings set org.gnome.shell disable-user-extensions false
|
||||||
|
become: false
|
||||||
|
|
||||||
|
- name: install cli-gnome-extension-manager
|
||||||
|
command:
|
||||||
|
cmd: "pkgmgr install cli-gnome-extension-manager --clone-mode https"
|
||||||
|
become: false
|
||||||
|
|
||||||
|
- name: Execute CLI GNOME Extension manager script
|
||||||
|
ansible.builtin.shell: cli-gnome-extension-manager "{{ item[0] }}" "{{ item[1] }}" "{{ item[2] }}"
|
||||||
|
loop: "{{applications[application_id].plugins | dict2items }}"
|
||||||
|
become: false
|
25
roles/pc-gnome-terminal/README.md
Normal file
25
roles/pc-gnome-terminal/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# GNOME Terminal Installation
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This role installs **GNOME Terminal**, the official terminal emulator for the GNOME desktop environment. GNOME Terminal provides a modern, feature-rich command-line interface for users on Arch Linux.
|
||||||
|
|
||||||
|
Learn more about GNOME Terminal on [Wikipedia](https://en.wikipedia.org/wiki/GNOME_Terminal) and visit the [GNOME Official Website](https://www.gnome.org) for additional details.
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The purpose of this role is to ensure that GNOME Terminal is installed and properly configured on Arch Linux systems, providing users with a robust and fully featured terminal emulator that integrates seamlessly with the GNOME desktop.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Installs GNOME Terminal using the Pacman package manager.
|
||||||
|
- Ensures the terminal emulator is available system-wide.
|
||||||
|
- Supports modern features and configuration options offered by GNOME Terminal.
|
||||||
|
- Enhances the overall usability and productivity of the GNOME desktop environment.
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
|
||||||
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
20
roles/pc-gnome-terminal/meta/main.yml
Normal file
20
roles/pc-gnome-terminal/meta/main.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: "Installs GNOME Terminal on Arch Linux, providing a modern terminal emulator for the GNOME desktop environment."
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
company: |
|
||||||
|
Kevin Veen-Birkenbach
|
||||||
|
Consulting & Coaching Solutions
|
||||||
|
https://www.veen.world
|
||||||
|
min_ansible_version: "2.9"
|
||||||
|
platforms:
|
||||||
|
- name: Archlinux
|
||||||
|
versions:
|
||||||
|
- rolling
|
||||||
|
galaxy_tags:
|
||||||
|
- gnome
|
||||||
|
- terminal
|
||||||
|
- automation
|
||||||
|
dependencies: []
|
6
roles/pc-gnome-terminal/tasks/main.yml
Normal file
6
roles/pc-gnome-terminal/tasks/main.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
- name: Install Gnome Terminal
|
||||||
|
# @see https://en.wikipedia.org/wiki/GNOME_Terminal
|
||||||
|
community.general.pacman:
|
||||||
|
name:
|
||||||
|
- gnome-terminal
|
||||||
|
state: present
|
@ -1,52 +1,27 @@
|
|||||||
# PC-Gnome Role
|
# GNOME Desktop Setup
|
||||||
|
|
||||||
## Overview
|
## Description
|
||||||
Welcome to the `pc-gnome` role, a key part of the `cymais` repository. This role is dedicated to setting up and configuring the GNOME desktop environment on personal computers.
|
|
||||||
|
|
||||||
## Role Details
|
This role aggregates various GNOME desktop components to ensure a cohesive and fully functional GNOME environment on Arch Linux. It includes the installation and configuration of several sub-roles:
|
||||||
The `pc-gnome` role includes several tasks for installing GNOME software, managing GNOME extensions, and customizing the GNOME desktop experience:
|
- **pc-gnome-caffeine:** Prevents the system from sleeping or locking automatically.
|
||||||
|
- **pc-gnome-extensions:** Manages GNOME Shell extensions and installs the CLI GNOME Extension Manager.
|
||||||
|
- **pc-gnome-terminal:** Installs GNOME Terminal, the official terminal emulator for GNOME.
|
||||||
|
|
||||||
1. **Install Gnome Software**:
|
## Purpose
|
||||||
- Installs essential GNOME packages such as `gnome-shell-extensions`, `gnome-shell-extension-desktop-icons-ng`, and `gnome-terminal` using the `community.general.pacman` module.
|
|
||||||
|
|
||||||
2. **GNOME Activate Extensions**:
|
The purpose of this role is to provide a complete GNOME desktop experience by orchestrating multiple sub-roles. This simplifies deployment and management by ensuring that all key components are installed and configured in a consistent, system-wide manner.
|
||||||
- Enables user extensions in GNOME using the `gsettings` command.
|
|
||||||
|
|
||||||
3. **GNOME Set Favorite Apps**:
|
## Features
|
||||||
- Customizes the favorite applications on the GNOME shell using the `gsettings` command and the `{{favorite_apps}}` variable.
|
|
||||||
|
|
||||||
4. **Pull CLI GNOME Extension Manager Script**:
|
- Aggregates multiple GNOME-related roles into one cohesive setup.
|
||||||
- Clones or updates the CLI GNOME Extension Manager script from a Git repository.
|
- Installs and configures caffeine-ng to keep the desktop active.
|
||||||
|
- Manages GNOME Shell extensions and integrates the CLI GNOME Extension Manager.
|
||||||
|
- Installs GNOME Terminal for a robust command-line interface.
|
||||||
|
- Ensures a seamless and uniform GNOME environment on Arch Linux.
|
||||||
|
|
||||||
5. **Warn if Repo is Not Reachable**:
|
## Credits
|
||||||
- Displays a warning message if the repository for the CLI GNOME Extension Manager script is not reachable.
|
|
||||||
|
|
||||||
6. **Execute CLI GNOME Extension Manager Script**:
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
- Runs the CLI GNOME Extension Manager script to manage GNOME extensions based on the `{{gnome_extensions}}` variable.
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
|
||||||
## Other Resources
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
||||||
For additional details on managing GNOME extensions via command line, visit [Ask Ubuntu](https://askubuntu.com/questions/1029376/how-do-i-enable-and-disable-gnome-extensions-from-the-command-line).
|
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
This role depends on:
|
|
||||||
- **pc-git**: Ensures Git is installed for cloning repositories.
|
|
||||||
- **pc-caffeine**: A supplementary role that may include tools or configurations complementing the GNOME setup.
|
|
||||||
|
|
||||||
## Purpose and Usage
|
|
||||||
The `pc-gnome` role is ideal for users who prefer the GNOME desktop environment and wish to automate its setup and customization. It's especially useful for setting up a new system or reconfiguring GNOME after a system update.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
- **Ansible**: Must be installed to use this role.
|
|
||||||
- **Arch Linux-based System**: The role uses the `pacman` package manager, indicating it's designed for Arch Linux or similar distributions.
|
|
||||||
|
|
||||||
## Running the Role
|
|
||||||
To use this role:
|
|
||||||
1. Clone the `cymais` repository.
|
|
||||||
2. Navigate to the `roles/pc-gnome` directory.
|
|
||||||
3. Run the role using Ansible, ensuring you have the necessary permissions for installations and configurations.
|
|
||||||
|
|
||||||
## Customization
|
|
||||||
You can customize this role by modifying the GNOME software packages, favorite apps, and GNOME extensions in the respective tasks.
|
|
||||||
|
|
||||||
## Support and Contributions
|
|
||||||
For support, feedback, or contributions, such as adding more GNOME-related configurations or tools, open an issue or submit a pull request in the `cymais` repository. Contributions that enhance the GNOME environment setup are highly encouraged.
|
|
@ -1,3 +1,24 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: "Aggregates essential GNOME desktop roles—including caffeine, extensions, and terminal—for a complete GNOME environment on Arch Linux."
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
company: |
|
||||||
|
Kevin Veen-Birkenbach
|
||||||
|
Consulting & Coaching Solutions
|
||||||
|
https://www.veen.world
|
||||||
|
min_ansible_version: "2.9"
|
||||||
|
platforms:
|
||||||
|
- name: Archlinux
|
||||||
|
versions:
|
||||||
|
- rolling
|
||||||
|
galaxy_tags:
|
||||||
|
- gnome
|
||||||
|
- desktop
|
||||||
|
- archlinux
|
||||||
|
- automation
|
||||||
dependencies:
|
dependencies:
|
||||||
- pc-git
|
- pc-gnome-caffeine
|
||||||
- pc-caffeine
|
- pc-gnome-extensions
|
||||||
|
- pc-gnome-terminal
|
@ -1,28 +0,0 @@
|
|||||||
- name: Install Gnome Software
|
|
||||||
community.general.pacman:
|
|
||||||
name:
|
|
||||||
- gnome-shell-extensions
|
|
||||||
- gnome-shell-extension-desktop-icons-ng
|
|
||||||
- gnome-terminal
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: GNOME Activate Extensions
|
|
||||||
ansible.builtin.shell: gsettings set org.gnome.shell disable-user-extensions false
|
|
||||||
become: false
|
|
||||||
|
|
||||||
- name: GNOME Set favorite apps
|
|
||||||
ansible.builtin.shell: gsettings set org.gnome.shell favorite-apps "{{favorite_apps}}"
|
|
||||||
become: false
|
|
||||||
|
|
||||||
- name: pull CLI GNOME Extension manager script
|
|
||||||
git:
|
|
||||||
repo: "git@github.com:kevinveenbirkenbach/cli-gnome-extension-manager.git"
|
|
||||||
dest: "$HOME/Repositories/github.com/kevinveenbirkenbach/cli-gnome-extension-manager"
|
|
||||||
update: yes
|
|
||||||
ignore_errors: true
|
|
||||||
become: false
|
|
||||||
|
|
||||||
- name: Execute CLI GNOME Extension manager script
|
|
||||||
ansible.builtin.shell: bash "/home/{{client_username}}/Repositories/github.com/kevinveenbirkenbach/cli-gnome-extension-manager/gnome-extension-manager.sh" "{{ item[0] }}" "{{ item[1] }}" "{{ item[2] }}"
|
|
||||||
loop: "{{gnome_extensions}}"
|
|
||||||
become: false
|
|
@ -21,4 +21,5 @@ galaxy_info:
|
|||||||
repository: "https://s.veen.world/cymais"
|
repository: "https://s.veen.world/cymais"
|
||||||
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
dependencies: []
|
dependencies:
|
||||||
|
- fakeroot
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
- name: install yay
|
- name: install yay
|
||||||
community.general.pacman:
|
community.general.pacman:
|
||||||
name: yay
|
name:
|
||||||
|
- yay
|
||||||
|
- patch
|
||||||
|
- base-devel
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Create the `aur_builder` user
|
- name: Create the `aur_builder` user
|
||||||
|
@ -22,5 +22,5 @@ galaxy_info:
|
|||||||
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
||||||
documentation: "https://s.veen.world/cymais"
|
documentation: "https://s.veen.world/cymais"
|
||||||
dependencies:
|
dependencies:
|
||||||
- git
|
- package-manager
|
||||||
- systemd-notifier
|
- systemd-notifier
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
- name: install auto-btrfs-balancer
|
- name: install btrfs-auto-balancer
|
||||||
command:
|
command:
|
||||||
cmd: "pkgmgr install auto-btrfs-balancer"
|
cmd: "pkgmgr install btrfs-auto-balancer --clone-mode https"
|
||||||
when: run_once_system_btrfs_auto_balancer is not defined
|
when: run_once_system_btrfs_auto_balancer is not defined
|
||||||
|
|
||||||
- name: configure system-btrfs-auto-balancer.cymais.service
|
- name: configure system-btrfs-auto-balancer.cymais.service
|
||||||
|
@ -4,4 +4,4 @@ OnFailure=systemd-notifier.cymais@%n.service
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/bin/sh -c 'auto-btrfs-balancer 90 10'
|
ExecStart=/bin/sh -c 'btrfs-auto-balancer 90 10'
|
@ -1,6 +1,6 @@
|
|||||||
- name: install swap-forge
|
- name: install swap-forge
|
||||||
command:
|
command:
|
||||||
cmd: "pkgmgr install backup-docker-to-local"
|
cmd: "pkgmgr install backup-docker-to-local --clone-mode https"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Execute create swapfile script
|
- name: Execute create swapfile script
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
/usr/bin/curl -s -X POST https://api.telegram.org/bot{{ telegram_bot_token }}/sendMessage -d chat_id={{ telegram_chat_id }} -d text="service $1 failed"
|
/usr/bin/curl -s -X POST https://api.telegram.org/bot{{ telegram_bot_token }}/sendMessage -d chat_id={{ telegram_chat_id }} -d text="service $1 on $HOST failed"
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
block:
|
block:
|
||||||
- name: Merge users
|
- name: Merge users
|
||||||
set_fact:
|
set_fact:
|
||||||
users: "{{ default_users | combine(users, recursive=True) }}"
|
users: "{{ default_users | combine(users| default({}), recursive=True) }}"
|
||||||
|
|
||||||
- name: Merge system_email definitions
|
- name: Merge system_email definitions
|
||||||
set_fact:
|
set_fact:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user