cachyos compatibility
Some checks failed
Ansible Lint Check / check-ansible (push) Failing after 48s
Nix Format Check / check-format (push) Failing after 1m49s
Python Lint Check / check-python (push) Failing after 33s

This commit is contained in:
2025-07-18 10:13:33 +02:00
parent fe80046042
commit 085d037f77
46 changed files with 478 additions and 407 deletions

View File

@@ -88,6 +88,7 @@ export DOTFILES_PATH=$HOME/.dotfiles
export PATH=$PATH:$HOME/.local/bin
export PATH=$PATH:$HOME/.cargo/bin
export PATH=$PATH:$DOTFILES_PATH/bin
export PATH=$PATH:$HOME/.spicetify
# Include pnpm if it exists
if [ -d "$HOME/.local/share/pnpm" ]; then

View File

@@ -1,9 +1,10 @@
[workstations]
mennos-laptop-w ansible_connection=local
mennos-desktop ansible_connection=local
mennos-cachyos-desktop ansible_connection=local
[servers]
mennos-server ansible_connection=local
mennos-cloud-server ansible_connection=local
mennos-vm ansible_connection=local
dotfiles-test ansible_connection=local
mennos-cachyos-desktop ansible_connection=local

View File

@@ -12,8 +12,8 @@
- name: Include workstation tasks
ansible.builtin.import_tasks: tasks/workstations/workstation.yml
when: inventory_hostname in ['mennos-laptop-w', 'mennos-desktop']
when: inventory_hostname in ['mennos-laptop-w', 'mennos-desktop', 'mennos-cachyos-desktop']
- name: Include server tasks
ansible.builtin.import_tasks: tasks/servers/server.yml
when: inventory_hostname in ['mennos-server', 'mennos-cloud-server', 'mennos-hobbypc', 'mennos-vm', 'dotfiles-test']
when: inventory_hostname in ['mennos-server', 'mennos-cloud-server', 'mennos-hobbypc', 'mennos-vm', 'mennos-cachyos-desktop']

View File

@@ -5,19 +5,31 @@
changed_when: false
failed_when: false
# Arch-based distributions (CachyOS, Arch Linux, etc.)
- name: Install Docker on Arch-based systems
community.general.pacman:
name:
- docker
- docker-compose
- docker-buildx
state: present
become: true
when: docker_check.rc != 0 and ansible_pkg_mgr == 'pacman'
# Non-Arch distributions
- name: Download Docker installation script
ansible.builtin.get_url:
url: https://get.docker.com
dest: /tmp/get-docker.sh
mode: "0755"
when: docker_check.rc != 0
when: docker_check.rc != 0 and ansible_pkg_mgr != 'pacman'
- name: Install Docker CE
- name: Install Docker CE on non-Arch systems
ansible.builtin.shell: bash -c 'set -o pipefail && sh /tmp/get-docker.sh'
args:
executable: /bin/bash
creates: /usr/bin/docker
when: docker_check.rc != 0
when: docker_check.rc != 0 and ansible_pkg_mgr != 'pacman'
- name: Add user to docker group
ansible.builtin.user:
@@ -27,25 +39,15 @@
become: true
when: docker_check.rc != 0
- name: Check if docker is running
ansible.builtin.systemd:
name: docker
state: started
enabled: true
become: true
register: docker_service
- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: true
become: true
when: docker_service.changed
- name: Enable and start docker service
ansible.builtin.systemd:
name: docker
state: started
enabled: true
become: true
when: docker_service.changed
- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: true
become: true
notify: Reload systemd

View File

@@ -7,6 +7,15 @@
manager: auto
become: true
- name: Debug ansible_facts for troubleshooting
ansible.builtin.debug:
msg: |
OS Family: {{ ansible_facts['os_family'] }}
Distribution: {{ ansible_facts['distribution'] }}
Package Manager: {{ ansible_pkg_mgr }}
Kernel: {{ ansible_kernel }}
tags: debug
- name: Include Tailscale tasks
ansible.builtin.import_tasks: tasks/global/tailscale.yml
become: true
@@ -27,7 +36,24 @@
become: true
when: "'microsoft-standard-WSL2' not in ansible_kernel"
- name: Ensure common packages are installed
- name: Ensure common packages are installed on Arch-based systems
ansible.builtin.package:
name:
- git
- vim
- curl
- wget
- httpie
- python
- python-pip
- python-pipx
- python-pylint
- go
state: present
become: true
when: ansible_pkg_mgr == 'pacman'
- name: Ensure common packages are installed on non-Arch systems
ansible.builtin.package:
name:
- git
@@ -35,19 +61,27 @@
- curl
- wget
- httpie
# Python is used for the dotfiles CLI tools
- python3
- python3-pip
- python3-venv
- pylint
- black
- pipx
# Package manager wrapper
- nala
# Go
- golang
state: present
become: true
when: ansible_pkg_mgr != 'pacman'
- name: Configure performance optimizations
ansible.builtin.sysctl:
name: "{{ item.name }}"
value: "{{ item.value }}"
state: present
reload: true
become: true
loop:
- { name: "vm.max_map_count", value: "16777216" }
# --- PBinCLI via pipx ---
- name: Ensure pbincli is installed with pipx

View File

@@ -1,14 +1,29 @@
---
- name: Ensure openssh-server is installed
- name: Ensure openssh-server is installed on Arch-based systems
ansible.builtin.package:
name: openssh
state: present
when: ansible_pkg_mgr == 'pacman'
- name: Ensure openssh-server is installed on non-Arch systems
ansible.builtin.package:
name: openssh-server
state: present
when: ansible_pkg_mgr != 'pacman'
- name: Ensure SSH service is enabled and running
- name: Ensure SSH service is enabled and running on Arch-based systems
ansible.builtin.service:
name: sshd
state: started
enabled: true
when: ansible_pkg_mgr == 'pacman'
- name: Ensure SSH service is enabled and running on non-Arch systems
ansible.builtin.service:
name: ssh
state: started
enabled: true
when: ansible_pkg_mgr != 'pacman'
- name: Ensure SSH server configuration is proper
ansible.builtin.template:

View File

@@ -28,10 +28,10 @@
vars:
gitconfig_mapping:
mennos-desktop: "$DOTFILES_PATH/config/git/gitconfig.wsl"
mennos-cachyos-desktop: "$DOTFILES_PATH/config/git/gitconfig.linux"
mennos-laptop-w: "$DOTFILES_PATH/config/git/gitconfig.wsl"
mennos-server: "$DOTFILES_PATH/config/git/gitconfig.mennos-server"
mennos-cloud-server: "$DOTFILES_PATH/config/git/gitconfig.mennos-server"
mennos-vm: "$DOTFILES_PATH/config/git/gitconfig.mennos-server"
dotfiles-test: "$DOTFILES_PATH/config/git/gitconfig.mennos-server"
tags:
- symlinks

View File

@@ -1,12 +1,17 @@
---
- name: Server setup
block:
- name: Ensure server common packages are installed
- name: Ensure openssh-server is installed on Arch-based systems
ansible.builtin.package:
name:
- openssh-server
name: openssh
state: present
become: true
when: ansible_pkg_mgr == 'pacman'
- name: Ensure openssh-server is installed on non-Arch systems
ansible.builtin.package:
name: openssh-server
state: present
when: ansible_pkg_mgr != 'pacman'
- name: Include JuiceFS tasks
ansible.builtin.include_tasks: juicefs.yml
@@ -27,7 +32,7 @@
enabled: true
hosts:
- mennos-cloud-server
- mennos-server
- mennos-cachyos-desktop
- name: karakeep
enabled: true
hosts:
@@ -48,7 +53,7 @@
enabled: true
hosts:
- mennos-cloud-server
- mennos-server
- mennos-cachyos-desktop
- name: seafile
enabled: true
hosts:
@@ -72,7 +77,7 @@
- name: downloaders
enabled: true
hosts:
- mennos-server
- mennos-cachyos-desktop
- name: wireguard
enabled: true
hosts:
@@ -81,7 +86,7 @@
enabled: true
hosts:
- mennos-cloud-server
- mennos-server
- mennos-cachyos-desktop
- name: arr-stack
enabled: false
hosts:
@@ -89,11 +94,11 @@
- name: home-assistant
enabled: true
hosts:
- mennos-server
- mennos-cachyos-desktop
- name: privatebin
enabled: true
hosts:
- mennos-server
- mennos-cachyos-desktop
- name: unifi-network-application
enabled: true
hosts:

View File

@@ -100,7 +100,7 @@ df.mvl.sh {
overseerr.mvl.sh jellyseerr.mvl.sh overseerr.vleeuwen.me jellyseerr.vleeuwen.me {
import country_block
reverse_proxy mennos-server:5555
reverse_proxy mennos-cachyos-desktop:5555
tls {{ caddy_email }}
}
@@ -115,28 +115,7 @@ fladder.mvl.sh {
reverse_proxy fladder:80
tls {{ caddy_email }}
}
ip.mvl.sh {
import country_block
reverse_proxy echoip:8080 {
header_up X-Real-IP {http.request.remote.host}
header_up X-Forwarded-For {http.request.remote.host}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Host {host}
}
tls {{ caddy_email }}
}
http://ip.mvl.sh {
import country_block
reverse_proxy echoip:8080 {
header_up X-Real-IP {http.request.remote.host}
header_up X-Forwarded-For {http.request.remote.host}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Host {host}
}
}
{% elif inventory_hostname == 'mennos-server' %}
{% elif inventory_hostname == 'mennos-cachyos-desktop' %}
home.vleeuwen.me {
import country_block
reverse_proxy host.docker.internal:8123 {
@@ -158,4 +137,25 @@ jellyfin.mvl.sh jellyfin.vleeuwen.me {
reverse_proxy jellyfin:8096
tls {{ caddy_email }}
}
ip.mvl.sh ip.vleeuwen.me {
import country_block
reverse_proxy echoip:8080 {
header_up X-Real-IP {http.request.remote.host}
header_up X-Forwarded-For {http.request.remote.host}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Host {host}
}
tls {{ caddy_email }}
}
http://ip.mvl.sh http://ip.vleeuwen.me {
import country_block
reverse_proxy echoip:8080 {
header_up X-Real-IP {http.request.remote.host}
header_up X-Forwarded-For {http.request.remote.host}
header_up X-Forwarded-Proto {scheme}
header_up X-Forwarded-Host {host}
}
}
{% endif %}

View File

@@ -4,8 +4,8 @@
- name: Set Caddy directories
ansible.builtin.set_fact:
caddy_service_dir: "{{ ansible_env.HOME }}/services/caddy"
caddy_data_dir: "{{ '/mnt/services/caddy' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/services/caddy' }}"
geoip_db_path: "{{ '/mnt/services/echoip' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/services/echoip' }}"
caddy_data_dir: "{{ '/mnt/services/caddy' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/services/caddy' }}"
geoip_db_path: "{{ '/mnt/services/echoip' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/services/echoip' }}"
caddy_email: "{{ lookup('community.general.onepassword', 'Caddy (Proxy)', vault='Dotfiles', field='email') }}"
- name: Create Caddy directory

View File

@@ -4,7 +4,7 @@
- name: Set EchoIP directories
ansible.builtin.set_fact:
echoip_service_dir: "{{ ansible_env.HOME }}/services/echoip"
echoip_data_dir: "{{ '/mnt/services/echoip' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/services/echoip' }}"
echoip_data_dir: "{{ '/mnt/services/echoip' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/services/echoip' }}"
maxmind_account_id: "{{ lookup('community.general.onepassword', 'MaxMind',
vault='Dotfiles', field='account_id') | regex_replace('\\s+', '') }}"
maxmind_license_key: "{{ lookup('community.general.onepassword', 'MaxMind',

View File

@@ -6,15 +6,11 @@ services:
- PUID=1000
- PGID=100
- TZ=Europe/Amsterdam
- JELLYFIN_PublishedServerUrl=https://jellyfin.mvl.sh
{% if inventory_hostname == 'mennos-server' %}
- NVIDIA_VISIBLE_DEVICES=all
{% endif %}
volumes:
- {{ jellyfin_data_dir }}/jellyfin-config:/config
- {{ '/mnt/data/movies' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/movies' }}:/movies
- {{ '/mnt/data/tvshows' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/tvshows' }}:/tvshows
- {{ '/mnt/data/music' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/music' }}:/music
- {{ '/mnt/data/movies' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/movies' }}:/movies
- {{ '/mnt/data/tvshows' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/tvshows' }}:/tvshows
- {{ '/mnt/data/music' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/music' }}:/music
ports:
- 8096:8096
- 8920:8920
@@ -26,17 +22,6 @@ services:
- "44"
networks:
- caddy_network
{% if inventory_hostname == 'mennos-server' %}
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
{% endif %}
fladder:
image: ghcr.io/donutware/fladder:latest

View File

@@ -3,7 +3,7 @@
block:
- name: Set Jellyfin directories
ansible.builtin.set_fact:
jellyfin_data_dir: "{{ '/mnt/services/jellyfin' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/services/jellyfin' }}"
jellyfin_data_dir: "{{ '/mnt/services/jellyfin' if inventory_hostname == 'mennos-cachyos-desktop' else '/mnt/object_storage/services/jellyfin' }}"
jellyfin_service_dir: "{{ ansible_env.HOME }}/services/jellyfin"
- name: Create Jellyfin directories

View File

@@ -1,51 +0,0 @@
---
- name: Install required packages for FirefoxPWA
ansible.builtin.apt:
name:
- curl
- gpg
- apt-transport-https
- debian-archive-keyring
state: present
update_cache: true
become: true
- name: Download FirefoxPWA GPG key
ansible.builtin.get_url:
url: https://packagecloud.io/filips/FirefoxPWA/gpgkey
dest: /usr/share/keyrings/firefoxpwa-keyring.gpg
mode: "0644"
become: true
- name: Import FirefoxPWA GPG key
ansible.builtin.command:
cmd: "set -o pipefail && gpg --dearmor < /usr/share/keyrings/firefoxpwa-keyring.gpg | tee /usr/share/keyrings/firefoxpwa-keyring.gpg > /dev/null"
args:
creates: /usr/share/keyrings/firefoxpwa-keyring.gpg
become: true
- name: Add FirefoxPWA repository
ansible.builtin.copy:
content: "deb [signed-by=/usr/share/keyrings/firefoxpwa-keyring.gpg] https://packagecloud.io/filips/FirefoxPWA/any any main"
dest: /etc/apt/sources.list.d/firefoxpwa.list
mode: "0644"
become: true
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
become: true
- name: Install FirefoxPWA package
ansible.builtin.apt:
name: firefoxpwa
state: present
become: true
- name: Ensure FirefoxPWA integration is enabled for compatible browsers
ansible.builtin.command:
cmd: "firefoxpwa install --global"
register: pwa_integration
changed_when: "'Integration installed' in pwa_integration.stdout"
failed_when: false
become: true

View File

@@ -45,7 +45,6 @@
- org.prismlauncher.PrismLauncher
# Multimedia
- com.spotify.Client
- com.plexamp.Plexamp
- tv.plex.PlexDesktop

View File

@@ -18,3 +18,4 @@
purge: true
autoremove: true
update_cache: true
when: ansible_pkg_mgr == 'apt'

View File

@@ -17,6 +17,11 @@
mode: "0755"
loop: "{{ workstation_symlinks }}"
- name: Remove existing autostart directory if it exists
ansible.builtin.file:
path: "{{ user_home }}/.config/autostart"
state: absent
- name: Create workstation symlinks
ansible.builtin.file:
src: "{{ item.src | replace('~', user_home) | replace('$DOTFILES_PATH', lookup('env', 'DOTFILES_PATH')) }}"

View File

@@ -35,10 +35,6 @@
ansible.builtin.import_tasks: tasks/workstations/1password-browsers.yml
when: "'microsoft-standard-WSL2' not in ansible_kernel"
- name: Include Firefox PWA tasks
ansible.builtin.import_tasks: tasks/workstations/firefoxpwa.yml
when: "'microsoft-standard-WSL2' not in ansible_kernel"
- name: Include purge LibreOffice tasks
ansible.builtin.import_tasks: tasks/workstations/purge-libreoffice.yml
@@ -58,15 +54,6 @@
- mangohud
# Used for VSCode Extensions
- nodejs
# File Manager
- nemo
# File Manager Extensions
- nemo-compare
- nemo-data
- nemo-fileroller
- nemo-font-manager
- nemo-gtkhash
- nemo-python
# DistroBox
- distrobox
state: present

View File

@@ -1,7 +1,7 @@
---
- name: Set Zen browser version
ansible.builtin.set_fact:
zen_browser_version: "1.13.2b"
zen_browser_version: "1.14.5b"
- name: Create directory for browser
ansible.builtin.file:

View File

@@ -5,7 +5,7 @@ Before=docker.service
[Service]
Type=simple
ExecStart=/usr/local/bin/juicefs mount redis://:{{ redis_password }}@mennos-cloud-server:6379/0 /mnt/object_storage \
ExecStart=/usr/local/bin/juicefs mount redis://:{{ redis_password }}@100.82.178.14:6379/0 /mnt/object_storage \
--cache-dir=/var/jfsCache \
--buffer-size=4096 \
--prefetch=16 \

View File

@@ -1,35 +0,0 @@
[Desktop Entry]
Type=Application
Version=1.4
Name=Fastmail
Comment=Email + calendar made better
Keywords=email;messaging;
Categories=GTK;Chat;ContactManagement;Email;InstantMessaging;Network;Office;
Icon=FFPWA-01JWXB8PY7AXJTNFRNWQN995PX
Exec=/home/menno/.config/autostart/FFPWA-01JWXB8PY7AXJTNFRNWQN995PX.ignition_delay.sh
Actions=0;1;2;3;
MimeType=
Terminal=false
StartupNotify=true
StartupWMClass=FFPWA-01JWXB8PY7AXJTNFRNWQN995PX
Hidden=false
[Desktop Action 0]
Name=Compose
Icon=FFPWA-01JWXB8PY7AXJTNFRNWQN995PX-0
Exec=/usr/bin/firefoxpwa site launch 01JWXB8PY7AXJTNFRNWQN995PX --url "https://app.fastmail.com/mail/Inbox/compose"
[Desktop Action 1]
Name=Mail
Icon=FFPWA-01JWXB8PY7AXJTNFRNWQN995PX-1
Exec=/usr/bin/firefoxpwa site launch 01JWXB8PY7AXJTNFRNWQN995PX --url "https://app.fastmail.com/mail/Inbox"
[Desktop Action 2]
Name=Contacts
Icon=FFPWA-01JWXB8PY7AXJTNFRNWQN995PX-2
Exec=/usr/bin/firefoxpwa site launch 01JWXB8PY7AXJTNFRNWQN995PX --url "https://app.fastmail.com/contacts/"
[Desktop Action 3]
Name=Calendar
Icon=FFPWA-01JWXB8PY7AXJTNFRNWQN995PX-3
Exec=/usr/bin/firefoxpwa site launch 01JWXB8PY7AXJTNFRNWQN995PX --url "https://app.fastmail.com/calendar/"

View File

@@ -1,2 +0,0 @@
#!/usr/bin/env sh
sleep 1 && /usr/bin/firefoxpwa site launch 01JWXB8PY7AXJTNFRNWQN995PX --protocol %u

View File

@@ -1,56 +0,0 @@
[Desktop Entry]
Name=SeaDrive
Comment=Seafile drive client
TryExec=/home/menno/Applications/SeaDrive-x86_64-3.0.14_c106ef6e87ab7c4dea949b2b4eb528b7.AppImage
Exec=/home/menno/.config/autostart/appimagekit_eb407e60ea8d3b2b80784ccca36a66be-SeaDrive.ignition_delay.sh
Icon=appimagekit_eb407e60ea8d3b2b80784ccca36a66be_seadrive
Type=Application
Categories=Network;FileTransfer;
X-AppImage-Old-Icon=seadrive
X-AppImage-Identifier=eb407e60ea8d3b2b80784ccca36a66be
Actions=AppImageLauncher-Remove-AppImage;AppImageLauncher-Update-AppImage;
X-AppImageLauncher-Version=3.0.0-alpha-4 (git commit 36951ec), built on 2025-02-13 16:55:10 UTC
Hidden=false
Terminal=false
[Desktop Action AppImageLauncher-Remove-AppImage]
Name=Delete this AppImage
Icon=AppImageLauncher
Exec=/opt/appimagelauncher.AppDir/usr/lib/x86_64-linux-gnu/appimagelauncher/remove "/home/menno/Applications/SeaDrive-x86_64-3.0.14_c106ef6e87ab7c4dea949b2b4eb528b7.AppImage"
Name[ast]=Desaniciar AppImage del sistema
Name[cs]=Odebrat AppImage ze systému
Name[de]=Dieses AppImage löschen
Name[en]=Delete this AppImage
Name[es]=Eliminar Appimage del Sistema
Name[fr]=Supprimer cette AppImage
Name[it]=Rimuovi questa AppImage
Name[ko]=이 AppImage 삭제
Name[nb_NO]=Slett AppImage
Name[nl]=AppImage deïnstalleren
Name[pl]=Usuń AppImage z systemu
Name[pt]=Remover AppImage do sistema
Name[pt_BR]=Remover AppImage do sistema
Name[ru]=Удалить AppImage
Name[tr]=Bu AppImage uygulamasını sil
Name[zh_Hans]=删除此 AppImage
[Desktop Action AppImageLauncher-Update-AppImage]
Name=Update this AppImage
Icon=AppImageLauncher
Exec=/opt/appimagelauncher.AppDir/usr/lib/x86_64-linux-gnu/appimagelauncher/update "/home/menno/Applications/SeaDrive-x86_64-3.0.14_c106ef6e87ab7c4dea949b2b4eb528b7.AppImage"
Name[ast]=Anovar AppImage
Name[cs]=Aktualizovat AppImage
Name[de]=Dieses AppImage aktualisieren
Name[en]=Update this AppImage
Name[es]=Actualizar Appimage
Name[fr]=Mettre à jour l'AppImage
Name[it]=Aggiorna questa AppImage
Name[ko]=이 AppImage 업데이트
Name[nb_NO]=Oppdater AppImage
Name[nl]=AppImage bijwerken
Name[pl]=Uaktualnij AppImage
Name[pt]=Atualizar AppImage
Name[pt_BR]=Atualizar AppImage
Name[ru]=Обновить AppImage
Name[tr]=Bu AppImage uygulamasını güncelle
Name[zh_Hans]=更新此 AppImage

View File

@@ -1,2 +0,0 @@
#!/usr/bin/env sh
sleep 10 && /home/menno/Applications/SeaDrive-x86_64-3.0.14_c106ef6e87ab7c4dea949b2b4eb528b7.AppImage

View File

@@ -1,18 +0,0 @@
[Desktop Entry]
Version=1.0
Name=ZapZap
Comment[pt_BR]=Whatsapp Desktop para Linux
Comment=Whatsapp Desktop for Linux
Exec=/home/menno/.config/autostart/com.rtosta.zapzap.ignition_delay.sh
Icon=com.rtosta.zapzap
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
Keywords=Whatsapp;Chat;ZapZap;
StartupWMClass=zapzap
MimeType=x-scheme-handler/whatsapp
Terminal=false
SingleMainWindow=true
X-GNOME-UsesNotifications=true
X-GNOME-SingleWindow=true
X-Flatpak=com.rtosta.zapzap
Hidden=false

View File

@@ -1,2 +0,0 @@
#!/usr/bin/env sh
sleep 7 && /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=zapzap --file-forwarding com.rtosta.zapzap @@u %u @@

View File

@@ -1,15 +0,0 @@
[Desktop Entry]
Type=Application
Name=Spotify
GenericName=Music Player
Icon=com.spotify.Client
Exec=/home/menno/.config/autostart/com.spotify.Client.ignition_delay.sh
Terminal=false
MimeType=x-scheme-handler/spotify;
Categories=Audio;Music;Player;AudioVideo;
StartupWMClass=spotify
X-GNOME-UsesNotifications=true
X-Flatpak-Tags=proprietary;
X-Flatpak=com.spotify.Client
Hidden=false
Comment=

View File

@@ -1,2 +0,0 @@
#!/usr/bin/env sh
sleep 6 && /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client @@u %U @@

View File

@@ -1,16 +0,0 @@
[Desktop Entry]
Name=Equibop
Exec=/home/menno/.config/autostart/io.github.equicord.equibop.ignition_delay.sh
Terminal=false
Type=Application
Icon=io.github.equicord.equibop
StartupWMClass=Equibop
X-AppImage-Version=2.1.4
GenericName=Internet Messenger
Categories=Network;
Keywords=discord;equibop;vesktop;vencord;equicord;electron;chat;
MimeType=x-scheme-handler/discord;
Comment=A fork of Vesktop pre-packaged with Equicord
X-Desktop-File-Install-Version=0.28
X-Flatpak=io.github.equicord.equibop
Hidden=false

View File

@@ -1,2 +0,0 @@
#!/usr/bin/env sh
sleep 4 && /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=startequibop io.github.equicord.equibop

View File

@@ -1,15 +0,0 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Signal
Exec=/home/menno/.config/autostart/org.signal.Signal.ignition_delay.sh
Terminal=false
Type=Application
Icon=org.signal.Signal
StartupWMClass=Signal
Comment=Private messaging from your desktop
MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha;
Categories=Network;InstantMessaging;Chat;
X-Desktop-File-Install-Version=0.28
X-Flatpak-RenamedFrom=signal-desktop.desktop;
X-Flatpak=org.signal.Signal
Hidden=false

View File

@@ -1,2 +0,0 @@
#!/usr/bin/env sh
sleep 2 && /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=signal-desktop --file-forwarding org.signal.Signal @@u %U @@

View File

@@ -1,7 +1,8 @@
[Desktop Entry]
Name=Telegram
Comment=New era of messaging
Exec=/home/menno/.config/autostart/org.telegram.ignition_delay.sh.desktop
TryExec=Telegram
Exec=/home/menno/.config/autostart/org.telegram.desktop.ignition_delay.sh
Icon=org.telegram.desktop
Terminal=false
StartupWMClass=TelegramDesktop
@@ -14,10 +15,9 @@ DBusActivatable=false
SingleMainWindow=true
X-GNOME-UsesNotifications=true
X-GNOME-SingleWindow=true
X-Flatpak=org.telegram.desktop
Hidden=false
[Desktop Action quit]
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=telegram-desktop org.telegram.desktop -quit
Exec=Telegram -quit
Name=Quit Telegram
Icon=application-exit

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env sh
sleep 2 && Telegram -- %u

View File

@@ -0,0 +1,14 @@
[Desktop Entry]
Type=Application
Name=Signal
Comment=Signal - Private Messenger
Comment[de]=Signal - Sicherer Messenger
Icon=signal-desktop
Exec=/home/menno/.config/autostart/signal-desktop.ignition_delay.sh
Terminal=false
Categories=Network;InstantMessaging;
StartupWMClass=signal
MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha;
Keywords=sgnl;chat;im;messaging;messenger;security;privat;
X-GNOME-UsesNotifications=true
Hidden=false

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env sh
sleep 2 && signal-desktop -- %u

283
config/autostart/steam.desktop Executable file
View File

@@ -0,0 +1,283 @@
[Desktop Entry]
Name=Steam
Comment=Application for managing and playing games on Steam
Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam
Comment[bg]=Приложение за ръководене и пускане на игри в Steam
Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam
Comment[da]=Applikation til at håndtere og spille spil på Steam
Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam
Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus
Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam
Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam
Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam
Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez
Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam
Comment[ja]=Steam 上でゲームを管理&プレイするためのアプリケーション
Comment[ko]=Steam에 있는 게임을 관리하고 플레이할 수 있는 응용 프로그램
Comment[no]=Program for å administrere og spille spill på Steam
Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam
Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam
Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam
Comment[ru]=Приложение для игр и управления играми в Steam
Comment[es]=Aplicación para administrar y ejecutar juegos en Steam
Comment[sv]=Ett program för att hantera samt spela spel på Steam
Comment[zh_CN]=管理和进行 Steam 游戏的应用程序
Comment[zh_TW]=管理並執行 Steam 遊戲的應用程式
Comment[th]=โปรแกรมสำหรับจัดการและเล่นเกมบน Steam
Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması
Comment[uk]=Програма для керування іграми та запуску ігор у Steam
Comment[vi]=Ứng dụng để quản lý và chơi trò chơi trên Steam
Exec=/home/menno/.config/autostart/steam.ignition_delay.sh
Icon=steam
Terminal=false
Type=Application
Categories=Network;FileTransfer;Game;
MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
PrefersNonDefaultGPU=true
X-KDE-RunOnDiscreteGpu=true
Hidden=false
[Desktop Action Store]
Name=Store
Name[pt_BR]=Loja
Name[bg]=Магазин
Name[cs]=Obchod
Name[da]=Butik
Name[nl]=Winkel
Name[fi]=Kauppa
Name[fr]=Magasin
Name[de]=Shop
Name[el]=ΚΑΤΑΣΤΗΜΑ
Name[hu]=Áruház
Name[it]=Negozio
Name[ja]=ストア
Name[ko]=상점
Name[no]=Butikk
Name[pt_PT]=Loja
Name[pl]=Sklep
Name[ro]=Magazin
Name[ru]=Магазин
Name[es]=Tienda
Name[sv]=Butik
Name[zh_CN]=商店
Name[zh_TW]=商店
Name[th]=ร้านค้า
Name[tr]=Mağaza
Name[uk]=Крамниця
Name[vi]=Cửa hàng
Exec=steam steam://store
[Desktop Action Community]
Name=Community
Name[pt_BR]=Comunidade
Name[bg]=Общност
Name[cs]=Komunita
Name[da]=Fællesskab
Name[nl]=Community
Name[fi]=Yhteisö
Name[fr]=Communauté
Name[de]=Community
Name[el]=Κοινότητα
Name[hu]=Közösség
Name[it]=Comunità
Name[ja]=コミュニティ
Name[ko]=커뮤니티
Name[no]=Samfunn
Name[pt_PT]=Comunidade
Name[pl]=Społeczność
Name[ro]=Comunitate
Name[ru]=Сообщество
Name[es]=Comunidad
Name[sv]=Gemenskap
Name[zh_CN]=社区
Name[zh_TW]=社群
Name[th]=ชุมชน
Name[tr]=Topluluk
Name[uk]=Спільнота
Name[vi]=Cộng đồng
Exec=steam steam://url/SteamIDControlPage
[Desktop Action Library]
Name=Library
Name[pt_BR]=Biblioteca
Name[bg]=Библиотека
Name[cs]=Knihovna
Name[da]=Bibliotek
Name[nl]=Bibliotheek
Name[fi]=Kokoelma
Name[fr]=Bibliothèque
Name[de]=Bibliothek
Name[el]=Συλλογή
Name[hu]=Könyvtár
Name[it]=Libreria
Name[ja]=ライブラリ
Name[ko]=라이브러리
Name[no]=Bibliotek
Name[pt_PT]=Biblioteca
Name[pl]=Biblioteka
Name[ro]=Colecţie
Name[ru]=Библиотека
Name[es]=Biblioteca
Name[sv]=Bibliotek
Name[zh_CN]=
Name[zh_TW]=收藏庫
Name[th]=คลัง
Name[tr]=Kütüphane
Name[uk]=Бібліотека
Name[vi]=Thư viện
Exec=steam steam://open/games
[Desktop Action Servers]
Name=Servers
Name[pt_BR]=Servidores
Name[bg]=Сървъри
Name[cs]=Servery
Name[da]=Servere
Name[nl]=Servers
Name[fi]=Palvelimet
Name[fr]=Serveurs
Name[de]=Server
Name[el]=Διακομιστές
Name[hu]=Szerverek
Name[it]=Server
Name[ja]=サーバー
Name[ko]=서버
Name[no]=Tjenere
Name[pt_PT]=Servidores
Name[pl]=Serwery
Name[ro]=Servere
Name[ru]=Серверы
Name[es]=Servidores
Name[sv]=Servrar
Name[zh_CN]=服务器
Name[zh_TW]=伺服器
Name[th]=เซิร์ฟเวอร์
Name[tr]=Sunucular
Name[uk]=Сервери
Name[vi]=Máy chủ
Exec=steam steam://open/servers
[Desktop Action Screenshots]
Name=Screenshots
Name[pt_BR]=Capturas de tela
Name[bg]=Снимки
Name[cs]=Snímky obrazovky
Name[da]=Skærmbilleder
Name[nl]=Screenshots
Name[fi]=Kuvankaappaukset
Name[fr]=Captures d'écran
Name[de]=Screenshots
Name[el]=Φωτογραφίες
Name[hu]=Képernyőmentések
Name[it]=Screenshot
Name[ja]=スクリーンショット
Name[ko]=스크린샷
Name[no]=Skjermbilder
Name[pt_PT]=Capturas de ecrã
Name[pl]=Zrzuty ekranu
Name[ro]=Capturi de ecran
Name[ru]=Скриншоты
Name[es]=Capturas
Name[sv]=Skärmdumpar
Name[zh_CN]=截图
Name[zh_TW]=螢幕擷圖
Name[th]=ภาพหน้าจอ
Name[tr]=Ekran Görüntüleri
Name[uk]=Скріншоти
Name[vi]=Ảnh chụp
Exec=steam steam://open/screenshots
[Desktop Action News]
Name=News
Name[pt_BR]=Notícias
Name[bg]=Новини
Name[cs]=Zprávy
Name[da]=Nyheder
Name[nl]=Nieuws
Name[fi]=Uutiset
Name[fr]=Actualités
Name[de]=Neuigkeiten
Name[el]=Νέα
Name[hu]=Hírek
Name[it]=Notizie
Name[ja]=ニュース
Name[ko]=뉴스
Name[no]=Nyheter
Name[pt_PT]=Novidades
Name[pl]=Aktualności
Name[ro]=Știri
Name[ru]=Новости
Name[es]=Noticias
Name[sv]=Nyheter
Name[zh_CN]=新闻
Name[zh_TW]=新聞
Name[th]=ข่าวสาร
Name[tr]=Haberler
Name[uk]=Новини
Name[vi]=Tin tức
Exec=steam steam://open/news
[Desktop Action Settings]
Name=Settings
Name[pt_BR]=Configurações
Name[bg]=Настройки
Name[cs]=Nastavení
Name[da]=Indstillinger
Name[nl]=Instellingen
Name[fi]=Asetukset
Name[fr]=Paramètres
Name[de]=Einstellungen
Name[el]=Ρυθμίσεις
Name[hu]=Beállítások
Name[it]=Impostazioni
Name[ja]=設定
Name[ko]=설정
Name[no]=Innstillinger
Name[pt_PT]=Definições
Name[pl]=Ustawienia
Name[ro]=Setări
Name[ru]=Настройки
Name[es]=Parámetros
Name[sv]=Inställningar
Name[zh_CN]=设置
Name[zh_TW]=設定
Name[th]=การตั้งค่า
Name[tr]=Ayarlar
Name[uk]=Налаштування
Name[vi]=Thiết lập
Exec=steam steam://open/settings
[Desktop Action BigPicture]
Name=Big Picture
Exec=steam steam://open/bigpicture
[Desktop Action Friends]
Name=Friends
Name[pt_BR]=Amigos
Name[bg]=Приятели
Name[cs]=Přátelé
Name[da]=Venner
Name[nl]=Vrienden
Name[fi]=Kaverit
Name[fr]=Amis
Name[de]=Freunde
Name[el]=Φίλοι
Name[hu]=Barátok
Name[it]=Amici
Name[ja]=フレンド
Name[ko]=친구
Name[no]=Venner
Name[pt_PT]=Amigos
Name[pl]=Znajomi
Name[ro]=Prieteni
Name[ru]=Друзья
Name[es]=Amigos
Name[sv]=Vänner
Name[zh_CN]=好友
Name[zh_TW]=好友
Name[th]=เพื่อน
Name[tr]=Arkadaşlar
Name[uk]=Друзі
Name[vi]=Bạn bè
Exec=steam steam://open/friends

View File

@@ -0,0 +1,2 @@
#!/usr/bin/env sh
sleep 10 && /usr/bin/steam %U

View File

@@ -25,11 +25,11 @@
]
},
"locked": {
"lastModified": 1752544374,
"narHash": "sha256-ReX0NG6nIAEtQQjLqeu1vUU2jjZuMlpymNtb4VQYeus=",
"lastModified": 1752780124,
"narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2e00ed310c218127e02ffcf28ddd4e0f669fde3e",
"rev": "c718918222bdb104397762dea67e6b397a7927fe",
"type": "github"
},
"original": {
@@ -41,11 +41,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1752436162,
"narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=",
"lastModified": 1752620740,
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8",
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
"type": "github"
},
"original": {

View File

@@ -33,6 +33,20 @@
in
{
homeConfigurations = {
"mennos-cachyos-desktop" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit
pkgs
pkgs-unstable
opnix
;
isServer = false;
hostname = "mennos-cachyos-desktop";
};
};
"mennos-desktop" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
@@ -61,20 +75,6 @@
};
};
"dotfiles-test" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit
pkgs
pkgs-unstable
opnix
;
isServer = true;
hostname = "dotfiles-test";
};
};
"mennos-cloud-server" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];

View File

@@ -0,0 +1,4 @@
{ pkgs-unstable, ... }:
{
home.packages = with pkgs-unstable; [ ];
}

View File

@@ -9,12 +9,12 @@
imports =
if hostname == "mennos-desktop" then
[ ./hosts/mennos-desktop.nix ]
else if hostname == "mennos-cachyos-desktop" then
[ ./hosts/mennos-cachyos-desktop.nix ]
else if hostname == "mennos-laptop-w" then
[ ./hosts/mennos-laptop-w.nix ]
else if hostname == "mennos-server" then
[ ./hosts/mennos-server.nix ]
else if hostname == "dotfiles-test" then
[ ./hosts/mennos-server.nix ]
else if hostname == "mennos-cloud-server" then
[ ./hosts/mennos-cloud-server.nix ]
else if hostname == "mennos-vm" then

View File

@@ -1,62 +0,0 @@
{ ... }:
{
# Default applications
xdg.mimeApps = {
enable = true;
defaultApplications = {
# default browser
"application/xhtml+xml" = [ "firefox.desktop" ];
"text/html" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
# default file manager
"inode/directory" = [ "nemo.desktop" ];
# VLC (Video Player)
"video/x-ogm+ogg" = [ "vlc.desktop" ];
"video/3gp" = [ "vlc.desktop" ];
"video/3gpp" = [ "vlc.desktop" ];
"video/3gpp2" = [ "vlc.desktop" ];
"video/dv" = [ "vlc.desktop" ];
"video/divx" = [ "vlc.desktop" ];
"video/fli" = [ "vlc.desktop" ];
"video/flv" = [ "vlc.desktop" ];
"video/mp2t" = [ "vlc.desktop" ];
"video/mp4" = [ "vlc.desktop" ];
"video/mp4v-es" = [ "vlc.desktop" ];
"video/mpeg" = [ "vlc.desktop" ];
"video/mpeg-system" = [ "vlc.desktop" ];
"video/msvideo" = [ "vlc.desktop" ];
"video/ogg" = [ "vlc.desktop" ];
"video/quicktime" = [ "vlc.desktop" ];
"video/vnd.divx" = [ "vlc.desktop" ];
"video/vnd.mpegurl" = [ "vlc.desktop" ];
"video/vnd.rn-realvideo" = [ "vlc.desktop" ];
"video/webm" = [ "vlc.desktop" ];
"video/x-anim" = [ "vlc.desktop" ];
"video/x-avi" = [ "vlc.desktop" ];
"video/x-flc" = [ "vlc.desktop" ];
"video/x-fli" = [ "vlc.desktop" ];
"video/x-flv" = [ "vlc.desktop" ];
"video/x-m4v" = [ "vlc.desktop" ];
"video/x-matroska" = [ "vlc.desktop" ];
"video/x-mpeg" = [ "vlc.desktop" ];
"video/x-mpeg2" = [ "vlc.desktop" ];
"video/x-ms-asf" = [ "vlc.desktop" ];
"video/x-ms-asf-plugin" = [ "vlc.desktop" ];
"video/x-ms-asx" = [ "vlc.desktop" ];
"video/x-msvideo" = [ "vlc.desktop" ];
"video/x-ms-wm" = [ "vlc.desktop" ];
"video/x-ms-wmv" = [ "vlc.desktop" ];
"video/x-ms-wmx" = [ "vlc.desktop" ];
"video/x-ms-wvx" = [ "vlc.desktop" ];
"video/x-nsv" = [ "vlc.desktop" ];
"video/x-theora" = [ "vlc.desktop" ];
"video/x-theora+ogg" = [ "vlc.desktop" ];
"video/x-ogm" = [ "vlc.desktop" ];
"video/avi" = [ "vlc.desktop" ];
"video/x-mpeg-system" = [ "vlc.desktop" ];
};
};
}

View File

@@ -1,4 +1,5 @@
Host *
IdentityAgent ~/.1password/agent.sock
AddKeysToAgent yes
ForwardAgent yes

View File

@@ -301,7 +301,7 @@ warning_prompt() {
log_error "Please ensure you have a backup of your data before proceeding."
log_error "This script will modify system files and may require sudo permissions."
echo ""
log_info "This script has been tested on Ubuntu 22.04, 24.04, 24.10, Pop!_OS 24.04 Alpha 7, Debian 12 and Fedora 41."
log_info "This script has been tested on Ubuntu 22.04, 24.04, 24.10, Pop!_OS 24.04 Alpha 7, Debian 12, Fedora 41 and CachyOS."
log_info "Setup starts in 10 seconds, to abort use Ctrl+C to exit NOW."
echo ""
sleep 10
@@ -425,6 +425,12 @@ check_compatibility() {
sleep 5
check_command_availibility "apt"
;;
CachyOS*)
log_success "Detected CachyOS Linux. Proceeding with setup..."
log_warning "Continueing in 5 seconds..."
sleep 5
check_command_availibility "pacman"
;;
*)
die "Unsupported distribution: $distro"
;;
@@ -518,7 +524,7 @@ EOF
log_error "!!! Please logout / restart to continue !!!"
log_error "~~~ Proceed by running 'dotf update' ~~~"
echo ""
log_warning "Note: For servers to be able to load secrets you might want to populate ~/.op_sat with a 1Password Service Account Token."
log_warning "Note: For systems to be able to load secrets you might want to populate ~/.op_sat with a 1Password Service Account Token."
echo ""
}

View File

@@ -53,6 +53,7 @@
"remote.SSH.remotePlatform": {
"mennos-laptop-w": "linux",
"mennos-desktop": "linux",
"mennos-cachyos-desktop": "linux",
"cloud": "linux"
},
"editor.tabSize": 2,
@@ -75,5 +76,6 @@
"debug.toolBarLocation": "commandCenter",
"workbench.colorTheme": "Default Dark+",
"ansible.lightspeed.enabled": false,
"ansible.lightspeed.suggestions.enabled": false
"ansible.lightspeed.suggestions.enabled": false,
"docker.extension.enableComposeLanguageServer": false
}