Update
This commit is contained in:
parent
a1b1cfa8a4
commit
b5f79519cb
18 changed files with 260 additions and 34 deletions
|
@ -21,7 +21,7 @@
|
||||||
no_proxy: firewall.qgm.lan, server.qgm.lan, qgm.lan
|
no_proxy: firewall.qgm.lan, server.qgm.lan, qgm.lan
|
||||||
|
|
||||||
## PAM mount nextcloud, remove or leave empty to skip:
|
## PAM mount nextcloud, remove or leave empty to skip:
|
||||||
web_dav: https://wolke.qg-moessingen.de/remote.php/dav/files/%(USER)
|
web_dav: https://wolke.qg-moessingen.de/nextcloud/remote.php/dav/files/%(USER)
|
||||||
|
|
||||||
## Local mirror for mscorefonts. Remove or leave empty to use no mirror:
|
## Local mirror for mscorefonts. Remove or leave empty to use no mirror:
|
||||||
mirror_msfonts: http://netboot.qgm.lan/mscorefonts/
|
mirror_msfonts: http://netboot.qgm.lan/mscorefonts/
|
||||||
|
@ -55,6 +55,12 @@
|
||||||
#- kerberize
|
#- kerberize
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
- name: Copy Server roots-pubkey to clients
|
||||||
|
authorized_key:
|
||||||
|
user: ansible
|
||||||
|
state: present
|
||||||
|
key: "{{ lookup('file', 'pubkeys/serverroot.pub') }}"
|
||||||
|
|
||||||
- name: Fix unattended-upgrades
|
- name: Fix unattended-upgrades
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/apt/apt.conf.d/20auto-upgrades
|
dest: /etc/apt/apt.conf.d/20auto-upgrades
|
||||||
|
|
67
roles/lmn_qgm/files/BeamerSetup.sh
Executable file
67
roles/lmn_qgm/files/BeamerSetup.sh
Executable file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Get connected monitors and their native resolutions
|
||||||
|
monitor_info=$(xrandr --query)
|
||||||
|
|
||||||
|
# Extract primary monitor name
|
||||||
|
primary_monitor_name=$(echo "$monitor_info" | grep " primary" | cut -d" " -f1)
|
||||||
|
|
||||||
|
# Extract secondary monitor name and native resolution
|
||||||
|
secondary_monitor_line=$(echo "$monitor_info" | grep -m1 -n -P " connected(?! primary)")
|
||||||
|
secondary_monitor_line_number=$(echo "$secondary_monitor_line" | cut -d":" -f1)
|
||||||
|
secondary_monitor_name=$(echo "$secondary_monitor_line" | cut -d":" -f2 | cut -d" " -f1)
|
||||||
|
if [ ! -z "$secondary_monitor_line_number" ]; then
|
||||||
|
secondary_resolution=$(echo "$monitor_info" | sed -e "1,${secondary_monitor_line_number}d" | grep -m1 "+" | awk '{ print $1 }')
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$secondary_monitor_name" ] || [ -z "$secondary_resolution" ] || [ -z "$primary_monitor_name" ]; then
|
||||||
|
zenity --error --text="Es konnten keine passenden Bildschirme gefunden werden. Sind Sie sich sicher, dass der Beamer eingeschaltet und verbunden ist?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find out which resolutions we want to recommend
|
||||||
|
if [ "$secondary_resolution" = "1920x1080" ]; then
|
||||||
|
recommend_high_res="Ja"
|
||||||
|
recommend_low_res="Nein"
|
||||||
|
default_xga="FALSE"
|
||||||
|
default_hd="TRUE"
|
||||||
|
else
|
||||||
|
recommend_high_res="Nein"
|
||||||
|
recommend_low_res="Ja"
|
||||||
|
default_xga="TRUE"
|
||||||
|
default_hd="FALSE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate GUI to let the user select a resolution
|
||||||
|
mode=$(zenity --list --radiolist --title="Beamer Setup" --text="Beamer mit der Auflösung $secondary_resolution gefunden." \
|
||||||
|
--print-column=3 --width 500 --height 250 \
|
||||||
|
--column= --column="Name" --column="Auflösung" --column="Format" --column="Empfohlen" \
|
||||||
|
FALSE "Full HD" "1920x1080" "16:9" "$recommend_high_res" \
|
||||||
|
"$default_hd" "HD" "1280x720" "16:9" "Ja" \
|
||||||
|
"$default_xga" "XGA" "1024x768" "4:3" "$recommend_low_res")
|
||||||
|
|
||||||
|
# Use xrandr to configure both displays
|
||||||
|
if [ ! -z "$mode" ]; then
|
||||||
|
xrandr --output $primary_monitor_name --mode $mode
|
||||||
|
xrandr --output $secondary_monitor_name --mode $mode --same-as $primary_monitor_name
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use pactl to set audio output to hdmi
|
||||||
|
profile="output:hdmi-stereo+input:analog-stereo"
|
||||||
|
sink_line=$(pactl list short sinks | grep -m1 alsa_output.pci-)
|
||||||
|
sink_nr=$(echo $sink_line | awk '{ print $1 }')
|
||||||
|
sink_name_hdmi=$(echo $sink_line | awk '{ print $2 }' | grep hdmi)
|
||||||
|
if [ ! -z "$sink_nr" ] && [ -z "$sink_name_hdmi" ]; then
|
||||||
|
card_name=$(pactl list cards short | grep -m1 alsa_card.pci- | awk '{ print $2 }')
|
||||||
|
pactl set-card-profile $card_name $profile
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$sink_nr" ]; then
|
||||||
|
pactl set-default-sink $(pactl list short sinks | grep -m1 alsa_output.pci- | awk '{ print $1 }')
|
||||||
|
fi
|
||||||
|
|
||||||
|
# if there is no hdmi sink search for a card profile to change
|
||||||
|
if [ -z "$sink_nr" ]; then
|
||||||
|
card_name=$(pactl list cards short | head -n 1 | awk '{ print $2 }')
|
||||||
|
pactl set-card-profile $card_name $profile
|
||||||
|
fi
|
BIN
roles/lmn_qgm/files/beamer.png
Normal file
BIN
roles/lmn_qgm/files/beamer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
BIN
roles/lmn_qgm/files/logout.png
Normal file
BIN
roles/lmn_qgm/files/logout.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
13
roles/lmn_qgm/files/qgm-abmelden.desktop
Normal file
13
roles/lmn_qgm/files/qgm-abmelden.desktop
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/usr/bin/env xdg-open
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Terminal=false
|
||||||
|
Exec=qdbus org.kde.ksmserver /KSMServer logout 1 0 1
|
||||||
|
Name[de_DE]=Abmelden
|
||||||
|
Name=Abmelden
|
||||||
|
Icon=/usr/share/icons/logout.png
|
||||||
|
Hidden=false
|
||||||
|
Comment=
|
||||||
|
Path=
|
||||||
|
StartupNotify=false
|
15
roles/lmn_qgm/files/qgm-beamersetup.desktop
Normal file
15
roles/lmn_qgm/files/qgm-beamersetup.desktop
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env xdg-open
|
||||||
|
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Terminal=false
|
||||||
|
Exec=BeamerSetup.sh
|
||||||
|
Name[de_DE]=QG-Beamersetup
|
||||||
|
Name=QG-Beamersetup
|
||||||
|
Icon=/usr/share/icons/beamer.png
|
||||||
|
Hidden=false
|
||||||
|
Comment=
|
||||||
|
Path=
|
||||||
|
StartupNotify=false
|
||||||
|
|
|
@ -1,2 +1,22 @@
|
||||||
[[ "${UID}" -lt 10000 ]] && return
|
[[ "${UID}" -lt 10000 ]] && return
|
||||||
|
|
||||||
|
# Desktop Verzeichnis?
|
||||||
|
DESKDIR=$(xdg-user-dir DESKTOP)
|
||||||
|
echo $DESKDIR >> /tmp/login.log
|
||||||
|
|
||||||
|
# Wallpaper
|
||||||
kwriteconfig5 --file "$HOME/.config/plasma-org.kde.plasma.desktop-appletsrc" --group 'Containments' --group '1' --group 'Wallpaper' --group 'org.kde.image' --group 'General' --key 'Image' "/usr/local/share/qgm/qgm_background_wallpaper.jpg" || return
|
kwriteconfig5 --file "$HOME/.config/plasma-org.kde.plasma.desktop-appletsrc" --group 'Containments' --group '1' --group 'Wallpaper' --group 'org.kde.image' --group 'General' --key 'Image' "/usr/local/share/qgm/qgm_background_wallpaper.jpg" || return
|
||||||
|
|
||||||
|
# Beamer-Icon
|
||||||
|
rm -f $DESKDIR/qgm-beamersetup.desktop
|
||||||
|
if [[ $(hostname -s) = lt-* || $(hostname -s) = r109-dell16 ]]; then
|
||||||
|
cp /usr/share/applications/qgm-beamersetup.desktop $DESKDIR/qgm-beamersetup.desktop
|
||||||
|
chmod 755 $DESKDIR/qgm-beamersetup.desktop
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Abmelden Knopf
|
||||||
|
echo "cp /usr/share/applications/qgm-abmelden.desktop $DESKDIR/qgm-abmelden.desktop" >> /tmp/login.log
|
||||||
|
cp /usr/share/applications/qgm-abmelden.desktop $DESKDIR/qgm-abmelden.desktop
|
||||||
|
chmod 755 $DESKDIR/qgm-abmelden.desktop
|
||||||
|
|
||||||
|
echo "Done" >> /tmp/login.log
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/usr/bin/env xdg-open
|
|
||||||
|
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Type=Application
|
|
||||||
Terminal=false
|
|
||||||
Exec=qgm-soundfix.sh
|
|
||||||
Name[de_DE]=QG - Ton zum Beamer
|
|
||||||
Name=QG - Ton zum Beamer
|
|
||||||
Icon=/usr/share/icons/breeze-dark/emblems/symbolic/emblem-music-symbolic.svg
|
|
||||||
Hidden=false
|
|
||||||
Comment=
|
|
||||||
Path=
|
|
||||||
StartupNotify=false
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
CARD=$(pactl list cards short | head -n 1 | awk '{print $2}')
|
|
||||||
pactl set-card-profile $CARD output:hdmi-stereo+input:analog-stereo
|
|
||||||
HDMISINK=$(pactl list sinks short | grep hdmi | awk '{print $2}')
|
|
||||||
pactl set-default-sink $HDMISINK
|
|
|
@ -237,21 +237,18 @@
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
|
|
||||||
##########
|
- name: Copy qgm-abmelden.desktop
|
||||||
# Laptop Skripte
|
|
||||||
#
|
|
||||||
- name: Copy qgm-soudfix.sh
|
|
||||||
copy:
|
copy:
|
||||||
src: qgm-soundfix.sh
|
src: qgm-abmelden.desktop
|
||||||
dest: /usr/local/bin/qgm-soundfix.sh
|
dest: /usr/share/applications/qgm-abmelden.desktop
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
|
|
||||||
- name: Copy qgm-soudfix.desktop
|
- name: Copy logout icon
|
||||||
copy:
|
copy:
|
||||||
src: qgm-soundfix.desktop
|
src: logout.png
|
||||||
dest: /usr/share/applications/qgm-soundfix.desktop
|
dest: /usr/share/icons/logout.png
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
|
|
41
roles/lmn_qgm/tasks/beamerscript.yml
Normal file
41
roles/lmn_qgm/tasks/beamerscript.yml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
##########
|
||||||
|
# Laptop Skripte
|
||||||
|
#
|
||||||
|
# Copy Beamer
|
||||||
|
- name: Copy BeamerSetup.sh
|
||||||
|
copy:
|
||||||
|
src: BeamerSetup.sh
|
||||||
|
dest: /usr/local/bin/BeamerSetup.sh
|
||||||
|
mode: '0755'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Copy qgm-beamersetup.desktop
|
||||||
|
copy:
|
||||||
|
src: qgm-beamersetup.desktop
|
||||||
|
dest: /usr/share/applications/qgm-beamersetup.desktop
|
||||||
|
mode: '0644'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Copy icon
|
||||||
|
copy:
|
||||||
|
src: beamer.png
|
||||||
|
dest: /usr/share/icons/beamer.png
|
||||||
|
mode: '0644'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Remove old scripts
|
||||||
|
- name: Remove qgm-soudfix.sh
|
||||||
|
file:
|
||||||
|
path: /usr/local/bin/qgm-soundfix.sh
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Delete qgm-soudfix.desktop
|
||||||
|
file:
|
||||||
|
path: /usr/share/applications/qgm-soundfix.desktop
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,3 +7,8 @@
|
||||||
import_tasks:
|
import_tasks:
|
||||||
file: soundfix.yml
|
file: soundfix.yml
|
||||||
when: "'lt-' in inventory_hostname"
|
when: "'lt-' in inventory_hostname"
|
||||||
|
|
||||||
|
- name: Copy Beamerscript to lt- hosts
|
||||||
|
import_tasks:
|
||||||
|
file: beamerscript.yml
|
||||||
|
when: "'lt-' in inventory_hostname"
|
||||||
|
|
BIN
roles/lmn_qgsoftware/files/logseq.png
Normal file
BIN
roles/lmn_qgsoftware/files/logseq.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
10
roles/lmn_qgsoftware/files/qg.appimage.Logseq.desktop
Normal file
10
roles/lmn_qgsoftware/files/qg.appimage.Logseq.desktop
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=Logseq
|
||||||
|
Comment=Logseq for Desktop
|
||||||
|
Exec=/opt/appimages/logseq/Logseq.AppImage $SANDBOXPARAM %u
|
||||||
|
Icon=logseq
|
||||||
|
StartupWMClass=undefined
|
||||||
|
Type=Application
|
||||||
|
Categories=Office;
|
||||||
|
MimeType=x-scheme-handler/logseq;text/html;
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
- name: Install bluej if necessary
|
- name: Install bluej if necessary
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
deb: "{{ mirror_javadev }}/bluej-{{ bluej_target_version}}.deb"
|
deb: "{{ mirror_javadev }}/bluej-{{ bluej_target_version }}.deb"
|
||||||
when: (mirror_javadev is defined and mirror_javadev | length > 0) and
|
when: (mirror_javadev is defined and mirror_javadev | length > 0) and
|
||||||
(bluej_target_version is defined and bluej_target_version | length > 0 ) and
|
(bluej_target_version is defined and bluej_target_version | length > 0 ) and
|
||||||
(bluej_installed_version != bluej_target_version )
|
(bluej_installed_version != bluej_target_version )
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
dest: /opt/appimages/freecad/FreeCAD.AppImage
|
dest: /opt/appimages/freecad/FreeCAD.AppImage
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
- name: Copy desktop starter file to target
|
- name: Copy desktop freecad starter file to target
|
||||||
copy:
|
copy:
|
||||||
src: files/qg.appimage.FreeCAD.desktop
|
src: files/qg.appimage.FreeCAD.desktop
|
||||||
dest: /usr/share/applications/qg.appimage.FreeCAD.desktop
|
dest: /usr/share/applications/qg.appimage.FreeCAD.desktop
|
||||||
|
@ -54,6 +54,39 @@
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
|
|
||||||
|
########
|
||||||
|
# Logseq AppImage
|
||||||
|
#
|
||||||
|
- name: Make sure target dir for logseq exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /opt/appimages/logseq/
|
||||||
|
state: directory
|
||||||
|
recurse: yes
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Download logseq AppImage from Cache
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "{{ mirror_appimage }}/Logseq.AppImage"
|
||||||
|
dest: /opt/appimages/logseq/Logseq.AppImage
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Copy desktop logseq starter file to target
|
||||||
|
copy:
|
||||||
|
src: files/qg.appimage.Logseq.desktop
|
||||||
|
dest: /usr/share/applications/qg.appimage.Logseq.desktop
|
||||||
|
mode: '0644'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Copy desktop logseq icon file to target
|
||||||
|
copy:
|
||||||
|
src: files/logseq.png
|
||||||
|
dest: /usr/share/icons/logseq.png
|
||||||
|
mode: '0644'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
########
|
########
|
||||||
# Digital als tarpack
|
# Digital als tarpack
|
||||||
|
@ -64,3 +97,11 @@
|
||||||
dest: /
|
dest: /
|
||||||
remote_src: yes
|
remote_src: yes
|
||||||
when: tarpack_digital is defined and tarpack_digital | length > 0
|
when: tarpack_digital is defined and tarpack_digital | length > 0
|
||||||
|
|
||||||
|
|
||||||
|
#######
|
||||||
|
# Scratch
|
||||||
|
- name: Install scratch
|
||||||
|
ansible.builtin.apt:
|
||||||
|
deb: "{{ mirror_debs }}/{{ scratch_install_name }}"
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,7 @@
|
||||||
- name: Install additional software
|
- name: Install additional software
|
||||||
import_tasks:
|
import_tasks:
|
||||||
file: install.yml
|
file: install.yml
|
||||||
|
|
||||||
|
- name: Remove unwanted software
|
||||||
|
import_tasks:
|
||||||
|
file: remove.yml
|
||||||
|
|
8
roles/lmn_qgsoftware/tasks/remove.yml
Normal file
8
roles/lmn_qgsoftware/tasks/remove.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
#######
|
||||||
|
# Uninstall KDE-Connect
|
||||||
|
- name: Uninstall KDe Connect
|
||||||
|
apt:
|
||||||
|
name: kdeconnect
|
||||||
|
state: absent
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
command: wget {{ greenfootURI }} -O {{ greenfootTargetFile }}
|
command: wget {{ greenfootURI }} -O {{ greenfootTargetFile }}
|
||||||
when: not gftf.stat.exists
|
when: not gftf.stat.exists
|
||||||
|
|
||||||
|
#### Freecad
|
||||||
|
|
||||||
- name: Check if freecad target-file exists
|
- name: Check if freecad target-file exists
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
stat:
|
stat:
|
||||||
|
@ -47,3 +49,21 @@
|
||||||
command: wget {{ freecadFullURI }} -O {{ freecadTargetFile }}
|
command: wget {{ freecadFullURI }} -O {{ freecadTargetFile }}
|
||||||
when: not fctf.stat.exists
|
when: not fctf.stat.exists
|
||||||
|
|
||||||
|
#### Logseq
|
||||||
|
|
||||||
|
- name: Check if logseq target-file exists
|
||||||
|
delegate_to: localhost
|
||||||
|
stat:
|
||||||
|
path: "{{ logseqTargetFile }}"
|
||||||
|
register: lstf
|
||||||
|
|
||||||
|
- name: Download logseq AppImage
|
||||||
|
delegate_to: localhost
|
||||||
|
command: wget {{ logseqFullURI }} -O {{ logseqTargetFile }}
|
||||||
|
when: not lstf.stat.exists
|
||||||
|
|
||||||
|
### Scratch offline
|
||||||
|
|
||||||
|
- name: Download Scratch Offline deb
|
||||||
|
delegate_to: localhost
|
||||||
|
command: wget {{ scratch_src_uri }} -O /var/www/html/debs/{{ scratch_install_name }}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue