---
- name: Preseed wireshark to allow users sniffing packets
  ansible.builtin.debconf:
    name: wireshark-common
    question: wireshark-common/install-setuid
    value: 'true'
    vtype: boolean

- name: Preseed ttf-mscorefonts-installer
  ansible.builtin.debconf:
    name: ttf-mscorefonts-installer
    question: msttcorefonts/dlurl
    value: "{{ mirror_msfonts }}"
    vtype: string
  when: mirror_msfonts is defined and mirror_msfonts | length > 0


- name: Install desktop EDU packages and some more
  apt:
    name:
      - atftp
      - calligraplan
      - codelite
      - codelite-plugins
      - curl
      - elpa-color-theme-modern
      - elpa-magit
      - emacs
      - git
      - gitg
      - gitk
      - libnotify-bin ## needed for pwroff script
      - neovim
      - net-tools
      - netcat-openbsd
      - nmap
      - planner
      - pulseview
      - sigrok
      - sigrok-cli
      - tmux
      - tree
      - ttf-mscorefonts-installer
      - wireshark
    autoremove: true
    state: latest
  environment:
    http_proxy: '' # this is needed to avoid ttf-mscorefonts-installer picking up aptcacher


- name: Allow users to dump packets for wireshark without group membership
  ansible.builtin.file:
    path: /usr/bin/dumpcap
    mode: '0755'


- name: Create firefox policies directory
  ansible.builtin.file:
    path: /etc/firefox-esr/policies
    state: directory
    mode: '0755'

- name: Create a symbolic link firefox to firefox-esr
  ansible.builtin.file:
    src: /etc/firefox-esr
    dest: /etc/firefox
    state: link

- name: Copy firefox policy
  ansible.builtin.copy:
    src: policies.json
    dest: /etc/firefox-esr/policies/


- name: Copy pwroff and bootorder scripts
  copy:
    src: "{{ item }}"
    dest: /usr/local/sbin/
    mode: 0755
  loop:
    - pwroff
    - bootorder.sh

- name: Provide service and timer for pwroff script
  copy:
    src: "{{ item }}"
    dest: "/etc/systemd/system/{{ item }}"
    mode: 0644
  with_items:
    - pwroff.service
    - pwroff.timer

- name: Enable pwroff.timer
  systemd:
    name: pwroff.timer
    enabled: true

- name: Fix boot order
  command: /usr/local/sbin/bootorder.sh
  register: cmd_result
  changed_when: cmd_result.stdout is not search('Nothing to do.')

- name: Copy dolphin config scripts
  ansible.builtin.copy:
    src: "{{ item }}"
    dest: /usr/local/bin/
    mode: 0755
  loop:
    - lmn-reset-dolphin.sh
    - lmn-patch-dolphin.sh

- name: Configure KDE dolphin menu
  ansible.builtin.copy:
    src: lmn-dolphin.sh
    dest: /etc/profile.d/


- name: Copy fvs-config.js to configure plasma
  ansible.builtin.copy:
    src: fvs-config.js
    dest: /usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/fvs-config.js
    mode: 0644


- name: Configure some KDE aspects
  blockinfile:
    path: /etc/xdg/kdeglobals
    create: true
    block: |
      [KDE]
      SingleClick=false

      [KDE Action Restrictions][$i]
      action/start_new_session=false
      #action/switch_user=false
      #action/lock_screen=false

- name: Shut down when idle for too long
  ansible.builtin.copy:
    dest: /etc/xdg/powermanagementprofilesrc
    content: |
      [AC][SuspendSession][$i]
      idleTime=36000000
      suspendType=8

- name: Start with empty session by default
  ansible.builtin.copy:
    dest: /etc/xdg/ksmserverrc
    content: |
      [General]
      loginMode=emptySession

#- name: Disable automatic lock screen and user specific modifications
#  ansible.builtin.copy:
#    path: /etc/xdg/kscreenlockerrc
#    create: true
#    content: |
#      [Daemon][$i]
#      Autolock=false
#      LockOnResume=false
#

- name: Patch sddm login screen to show hostname
  blockinfile:
    path: /usr/share/sddm/themes/debian-breeze/Main.qml
    marker: // {mark} ANSIBLE MANAGED BLOCK
    insertbefore: '\s+Battery {'
    block: |
      Text {
         color: "#ffffff"
         text: sddm.hostName
         anchors.right: parent.right
         anchors.rightMargin: 10
         font.pointSize: config.fontSize
      }