summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--roles/edit/templates/emacsconf-edit.el21
-rw-r--r--roles/obs/overlay.svg28
-rw-r--r--roles/obs/tasks/emacs.yml39
-rw-r--r--roles/obs/tasks/main.yml13
-rw-r--r--roles/obs/tasks/obs-setup.yml6
-rw-r--r--roles/obs/tasks/track.yml5
-rw-r--r--roles/obs/tasks/user.yml1
-rw-r--r--roles/obs/templates/emacsconf-stream-config.el13
-rw-r--r--roles/obs/templates/mpv.conf6
-rw-r--r--roles/obs/templates/scenes.json433
-rw-r--r--roles/publish/tasks/main.yml17
-rw-r--r--roles/publish/templates/emacsconf-config.el5
12 files changed, 166 insertions, 421 deletions
diff --git a/roles/edit/templates/emacsconf-edit.el b/roles/edit/templates/emacsconf-edit.el
index 481892b..e187c69 100644
--- a/roles/edit/templates/emacsconf-edit.el
+++ b/roles/edit/templates/emacsconf-edit.el
@@ -18,9 +18,6 @@
(modus-themes-load-vivendi)
(org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (shell . t)))
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
-(find-file "{{ emacsconf_private_dir }}/conf.org")
-(split-window-horizontally)
-(magit-status "{{ emacsconf_edit_wiki_dir }}")
(global-auto-revert-mode 1)
(with-eval-after-load 'projectile
(projectile-mode +1)
@@ -37,12 +34,13 @@
(setq completion-category-overrides '((file (styles orderless))))
(defhydra hydra-emacsconf ()
+ ("aa" emacsconf-agenda "agenda")
+ ("ad" (emacsconf-track-agenda "dev") "dev")
+ ("ag" (emacsconf-track-agenda "gen") "gen")
("e" embark-act "embark")
("t" emacsconf-go-to-talk "talk")
- ("c"
- (find-file emacsconf-org-file) "conf.org")
- ("C"
- (let ((default-directory (file-name-directory emacsconf-org-file)))
+ ("c" (find-file emacsconf-org-file) "conf.org")
+ ("C" (let ((default-directory (file-name-directory emacsconf-org-file)))
(call-interactively #'projectile-find-file))
"org dir")
("w"
@@ -51,7 +49,7 @@
"wiki")
("o" (find-file (expand-file-name (concat emacsconf-year "/organizers-notebook/index.org") emacsconf-directory))
"org notes")
- ("a" (let ((default-directory emacsconf-ansible-directory))
+ ("A" (let ((default-directory emacsconf-ansible-directory))
(call-interactively #'projectile-find-file))
"ansible")
("i" (switch-to-buffer (erc-get-buffer "#emacsconf-org")))
@@ -59,8 +57,15 @@
(call-interactively #'projectile-find-file))
"lisp")
("b" emacsconf-backstage-dired "backstage")
+ ("i" emacsconf-stream-set-talk-info "info")
+ ("m" emacsconf-stream-play-video "mpv")
+ ("p" emacsconf-stream-open-pad "pad")
+ ("q" emacsconf-stream-join-qa "qa")
("u" emacsconf-upload-dired "upload"))
(global-set-key (kbd "C-c e") #'hydra-emacsconf/body)
(require 'ox-md)
(server-start)
+
+(find-file "{{ emacsconf_private_dir }}/conf.org")
+
diff --git a/roles/obs/overlay.svg b/roles/obs/overlay.svg
index 13e1b03..b3314f6 100644
--- a/roles/obs/overlay.svg
+++ b/roles/obs/overlay.svg
@@ -27,18 +27,18 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="0.62998576"
- inkscape:cx="543.66308"
- inkscape:cy="369.05596"
+ inkscape:cx="129.368"
+ inkscape:cy="373.81797"
inkscape:document-units="in"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="in"
- inkscape:window-width="1366"
+ inkscape:window-width="699"
inkscape:window-height="709"
- inkscape:window-x="0"
+ inkscape:window-x="667"
inkscape:window-y="0"
- inkscape:window-maximized="1"
+ inkscape:window-maximized="0"
inkscape:showpageshadow="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" /><metadata
@@ -265,31 +265,21 @@ GhoaGhoaGhoaauJ/z6sVgaPaB24AAAAASUVORK5CYII=
style="stroke-width:2.33685" /><text
xml:space="preserve"
style="font-size:5.64444px;line-height:70%;font-family:AbcCursiveDottedLined;-inkscape-font-specification:AbcCursiveDottedLined;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-rule:evenodd;stroke-width:2.8448;stop-color:#000000"
- x="38.344975"
+ x="36.757473"
y="188.41483"
id="url"><tspan
sodipodi:role="line"
id="tspan398"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:sans-serif;-inkscape-font-specification:sans-serif;fill:#ffffff;stroke-width:2.8448"
- x="38.344975"
+ x="36.757473"
y="188.41483">Initializing...</tspan></text><text
xml:space="preserve"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.87778px;line-height:70%;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none;stop-color:#000000"
- x="2.535063"
- y="10.061478"
- id="news"><tspan
- sodipodi:role="line"
- id="tspan452"
- style="font-size:9.87778px;fill:#ffffff;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
- x="2.535063"
- y="10.061478">Initializing...</tspan></text><text
- xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:70%;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-rule:evenodd;stroke:none;stroke-width:0.264583;stroke-dasharray:none;stop-color:#000000"
- x="38.2995"
+ x="36.711998"
y="180.71815"
id="bottom"><tspan
sodipodi:role="line"
id="tspan452-6"
style="font-size:7.05556px;fill:#ffffff;stroke:none;stroke-width:0.264583;stroke-dasharray:none"
- x="38.2995"
+ x="36.711998"
y="180.71815">Initializing...</tspan></text></g></svg>
diff --git a/roles/obs/tasks/emacs.yml b/roles/obs/tasks/emacs.yml
new file mode 100644
index 0000000..0b013b3
--- /dev/null
+++ b/roles/obs/tasks/emacs.yml
@@ -0,0 +1,39 @@
+- name: Check out emacsconf-el
+ ansible.builtin.git:
+ repo: https://git.emacsconf.org/emacsconf-el
+ dest: "~{{ emacsconf_user }}/emacsconf-el"
+ register: elisp
+ failed_when:
+ - elisp.failed
+ - not 'Local modifications exist in repository' in elisp.msg
+ - not 'Failed to checkout branch' in elisp.msg
+ debugger: on_failed
+- name: Install Emacs packages
+ become_user: "{{ emacsconf_user }}"
+ shell: |
+ emacs --batch --exec "(progn (require 'package)
+ (let ((packages (seq-remove #'package-installed-p '({% for package in packages %}{{ package }} {% endfor %}))))
+ (when packages
+ (package-refresh-contents)
+ (mapc #'package-install packages))))"
+ vars:
+ packages:
+ - modus-themes
+ - vertico
+ - orderless
+- name: Set up Emacs configuration for interactive editing
+ template:
+ src: emacsconf-stream-config.el
+ dest: "{{ emacs_config_dir }}/emacsconf-stream-config.el"
+ owner: "{{ emacsconf_user }}"
+ group: "{{ emacsconf_group }}"
+- name: Add to Emacs configuration
+ lineinfile:
+ dest: "{{ emacs_config_dir }}/init.el"
+ state: present
+ regexp: "emacsconf-stream-config"
+ line: "(load-file \"{{ emacs_config_dir }}/emacsconf-stream-config.el\")"
+ owner: "{{ emacsconf_user }}"
+ group: "{{ emacsconf_group }}"
+ create: yes
+
diff --git a/roles/obs/tasks/main.yml b/roles/obs/tasks/main.yml
index bf856ec..8c1e059 100644
--- a/roles/obs/tasks/main.yml
+++ b/roles/obs/tasks/main.yml
@@ -11,6 +11,7 @@
name:
- xserver-xorg-video-dummy
- i3
+ - inkscape # OBS overlaying PNG is prettier than SVG
- socat
- ffmpeg
- pulseaudio
@@ -54,7 +55,6 @@
replace: \1 {{ emacsconf_id }}-{{ item.id }}
loop: "{{ emacsconf_tracks }}"
- name: Allow sudo from {{ emacsconf_user }} to the stream users
- tags: wip
become: true
become_user: root
copy:
@@ -63,3 +63,14 @@
{{ emacsconf_user }} ALL=({{ emacsconf_id }}-{{ item.id }}) NOPASSWD: ALL
{% endfor %}
dest: /etc/sudoers.d/50_emacsconf
+- name: Create directories
+ file:
+ owner: "{{ emacsconf_user }}"
+ group: "{{ emacsconf_group }}"
+ path: "{{ item }}"
+ state: directory
+ mode: 0775
+ loop:
+ - /data/{{ emacsconf_id }}/stream
+ - /data/{{ emacsconf_id }}/overlays
+
diff --git a/roles/obs/tasks/obs-setup.yml b/roles/obs/tasks/obs-setup.yml
index 59170f1..911f609 100644
--- a/roles/obs/tasks/obs-setup.yml
+++ b/roles/obs/tasks/obs-setup.yml
@@ -32,19 +32,21 @@
group: "{{ emacsconf_group }}"
dest: "~{{ emacsconf_user }}/.config/obs-studio/basic/scenes/{{ item.id }}.json"
- name: Copy overlay template for video
- tags: obs-scene
+ tags: obs-scene, wip
copy:
src: overlay.svg
dest: "~{{ emacsconf_user }}/video.svg"
owner: "{{ emacsconf_user }}"
group: "{{ emacsconf_group }}"
+ mode: 0664
- name: Copy overlay template for video
- tags: obs-scene
+ tags: obs-scene, wip
copy:
src: overlay.svg
dest: "~{{ emacsconf_user }}/other.svg"
owner: "{{ emacsconf_user }}"
group: "{{ emacsconf_group }}"
+ mode: 0664
- name: Create text files for OBS sources
copy:
content: "Initializing..."
diff --git a/roles/obs/tasks/track.yml b/roles/obs/tasks/track.yml
index a0acf16..14533df 100644
--- a/roles/obs/tasks/track.yml
+++ b/roles/obs/tasks/track.yml
@@ -27,7 +27,7 @@
group: "{{ emacsconf_group }}"
state: directory
- name: Add MPV profile
- tags: mpv-conf
+ tags: mpv-conf, wip
template:
src: mpv.conf
dest: "~{{ emacsconf_user }}/.config/mpv/mpv.conf"
@@ -79,6 +79,9 @@
dest: "~{{ emacsconf_user }}/.config/i3/config"
owner: "{{ emacsconf_user }}"
group: "{{ emacsconf_group }}"
+ - name: Set up Emacs configuration
+ tags: wip
+ include: emacs.yml
- name: Reset vars
tags: obs-scene, obs-profile, mpv, wip
set_fact:
diff --git a/roles/obs/tasks/user.yml b/roles/obs/tasks/user.yml
index caaf2d9..fae7d9f 100644
--- a/roles/obs/tasks/user.yml
+++ b/roles/obs/tasks/user.yml
@@ -14,7 +14,6 @@
state: directory
mode: 700
- name: Set up SSH key access
- tags: wip
template:
src: authorized_keys
dest: "/home/{{ emacsconf_user }}/.ssh/authorized_keys"
diff --git a/roles/obs/templates/emacsconf-stream-config.el b/roles/obs/templates/emacsconf-stream-config.el
new file mode 100644
index 0000000..8770d60
--- /dev/null
+++ b/roles/obs/templates/emacsconf-stream-config.el
@@ -0,0 +1,13 @@
+;; {{ ansible_managed }}
+
+;; Configuration
+(vertico-mode)
+(fset 'yes-or-no-p 'y-or-n-p)
+(modus-themes-load-vivendi)
+(org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (shell . t)))
+(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
+(setq completion-styles '(orderless))
+(setq completion-category-defaults nil)
+(setq completion-category-overrides '((file (styles orderless))))
+
+
diff --git a/roles/obs/templates/mpv.conf b/roles/obs/templates/mpv.conf
index b1bd1ca..dce6481 100644
--- a/roles/obs/templates/mpv.conf
+++ b/roles/obs/templates/mpv.conf
@@ -14,15 +14,15 @@ video-align-y=-1
sub-use-margins=yes
sub-scale-by-window=yes
sub-pos=103
-sub-margin-x=120
-sub-margin-y=20
+sub-margin-x=105
+sub-margin-y=60
sub-align-x=left
# Style
sub-font="{{ emacsconf_font }}"
sub-color="1/0.82/0"
sub-blur=0.2
sub-scale=0.9
-sub-font-size=40
+sub-font-size=30
sub-border-size=0
sub-border-color=0/1
sub-shadow-color=0/1
diff --git a/roles/obs/templates/scenes.json b/roles/obs/templates/scenes.json
index a92f29e..6d8e7ad 100644
--- a/roles/obs/templates/scenes.json
+++ b/roles/obs/templates/scenes.json
@@ -2,159 +2,10 @@
"current_program_scene": "Video audio and screen",
"current_scene": "Video audio and screen",
"current_transition": "Fade",
- "groups": [
- {
- "balance": 0.5,
- "deinterlace_field_order": 0,
- "deinterlace_mode": 0,
- "enabled": true,
- "flags": 0,
- "hotkeys": {
- "libobs.hide_scene_item.Logo": [],
- "libobs.hide_scene_item.News": [],
- "libobs.hide_scene_item.URL": [],
- "libobs.show_scene_item.Logo": [],
- "libobs.show_scene_item.News": [],
- "libobs.show_scene_item.URL": []
- },
- "id": "group",
- "mixers": 0,
- "monitoring_type": 0,
- "muted": false,
- "name": "{{ emacsconf_id }} base",
- "prev_ver": 469762051,
- "private_settings": {},
- "push-to-mute": false,
- "push-to-mute-delay": 0,
- "push-to-talk": false,
- "push-to-talk-delay": 0,
- "settings": {
- "custom_size": true,
- "cx": 494,
- "cy": 715,
- "id_counter": 0,
- "items": [
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
- "x": 0,
- "y": 0
- },
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
- "group_item_backup": false,
- "hide_transition": {
- "duration": 0
- },
- "id": 8,
- "locked": false,
- "name": "News",
- "pos": {
- "x": 12,
- "y": 0
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 1,
- "y": 1
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- },
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
- "x": 0,
- "y": 0
- },
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
- "group_item_backup": false,
- "hide_transition": {
- "duration": 0
- },
- "id": 7,
- "locked": false,
- "name": "URL",
- "pos": {
- "x": 114,
- "y": 691
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 1,
- "y": 1
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- },
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
- "x": 0,
- "y": 0
- },
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
- "group_item_backup": false,
- "hide_transition": {
- "duration": 0
- },
- "id": 6,
- "locked": false,
- "name": "Logo",
- "pos": {
- "x": 0,
- "y": 603
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 0.40234375,
- "y": 0.40234375
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- }
- ]
- },
- "sync": 0,
- "versioned_id": "group",
- "volume": 1
- }
- ],
+ "groups": [],
"modules": {
"auto-scene-switcher": {
- "active": false,
+ "active": true,
"interval": 300,
"non_matching_scene": "All track audio and screen",
"switch_if_not_matching": true,
@@ -236,8 +87,6 @@
"push-to-talk": false,
"push-to-talk-delay": 0,
"settings": {
- "color2": 4294967295,
- "drop_shadow": false,
"font": {
"face": "Sans Serif",
"flags": 0,
@@ -259,11 +108,11 @@
"enabled": true,
"flags": 0,
"hotkeys": {},
- "id": "text_ft2_source",
+ "id": "image_source",
"mixers": 0,
"monitoring_type": 0,
"muted": false,
- "name": "URL",
+ "name": "Other overlay",
"prev_ver": 469762051,
"private_settings": {},
"push-to-mute": false,
@@ -271,17 +120,10 @@
"push-to-talk": false,
"push-to-talk-delay": 0,
"settings": {
- "font": {
- "face": "Sans Serif",
- "flags": 0,
- "size": 20,
- "style": ""
- },
- "from_file": true,
- "text_file": "/home/{{ emacsconf_id }}-{{ item.id }}/url.txt"
+ "file": "/home/{{ emacsconf_id }}-{{ item.id }}/other.svg"
},
"sync": 0,
- "versioned_id": "text_ft2_source_v2",
+ "versioned_id": "image_source",
"volume": 1
},
{
@@ -295,7 +137,7 @@
"mixers": 0,
"monitoring_type": 0,
"muted": false,
- "name": "Logo",
+ "name": "Video",
"prev_ver": 469762051,
"private_settings": {},
"push-to-mute": false,
@@ -303,7 +145,32 @@
"push-to-talk": false,
"push-to-talk-delay": 0,
"settings": {
- "file": "/home/{{ emacsconf_id }}-{{ item.id }}/logo.png"
+ "file": "/home/{{ emacsconf_id }}-{{ item.id }}/video.svg"
+ },
+ "sync": 0,
+ "versioned_id": "image_source",
+ "volume": 1
+ },
+ {
+ "balance": 0.5,
+ "deinterlace_field_order": 0,
+ "deinterlace_mode": 0,
+ "enabled": true,
+ "flags": 0,
+ "hotkeys": {},
+ "id": "image_source",
+ "mixers": 0,
+ "monitoring_type": 0,
+ "muted": false,
+ "name": "Video overlay",
+ "prev_ver": 469762051,
+ "private_settings": {},
+ "push-to-mute": false,
+ "push-to-mute-delay": 0,
+ "push-to-talk": false,
+ "push-to-talk-delay": 0,
+ "settings": {
+ "file": "/home/{{ emacsconf_id }}-{{ item.id }}/video.png"
},
"sync": 0,
"versioned_id": "image_source",
@@ -347,14 +214,14 @@
"flags": 0,
"hotkeys": {
"OBSBasic.SelectScene": [],
- "libobs.hide_scene_item.Bottom": [],
+ "libobs.hide_scene_item.News": [],
+ "libobs.hide_scene_item.Other overlay": [],
"libobs.hide_scene_item.Screen Capture (XSHM)": [],
- "libobs.hide_scene_item.emacsconf base": [],
"libobs.hide_scene_item.gen-qa": [],
"libobs.hide_scene_item.gen-vid": [],
- "libobs.show_scene_item.Bottom": [],
+ "libobs.show_scene_item.News": [],
+ "libobs.show_scene_item.Other overlay": [],
"libobs.show_scene_item.Screen Capture (XSHM)": [],
- "libobs.show_scene_item.emacsconf base": [],
"libobs.show_scene_item.gen-qa": [],
"libobs.show_scene_item.gen-vid": []
},
@@ -371,7 +238,7 @@
"push-to-talk-delay": 0,
"settings": {
"custom_size": false,
- "id_counter": 22,
+ "id_counter": 24,
"items": [
{
"align": 5,
@@ -498,54 +365,17 @@
"crop_left": 0,
"crop_right": 0,
"crop_top": 0,
- "group_item_backup": true,
+ "group_item_backup": false,
"hide_transition": {
"duration": 0
},
- "id": 8,
+ "id": 23,
"locked": false,
- "name": "News",
+ "name": "Other overlay",
"pos": {
- "x": 21,
- "y": 6
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 1,
- "y": 1
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- },
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
"x": 0,
"y": 0
},
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
- "group_item_backup": true,
- "hide_transition": {
- "duration": 0
- },
- "id": 7,
- "locked": false,
- "name": "URL",
- "pos": {
- "x": 123,
- "y": 697
- },
"private_settings": {},
"rot": 0,
"scale": {
@@ -572,91 +402,17 @@
"crop_left": 0,
"crop_right": 0,
"crop_top": 0,
- "group_item_backup": true,
- "hide_transition": {
- "duration": 0
- },
- "id": 6,
- "locked": false,
- "name": "Logo",
- "pos": {
- "x": 9,
- "y": 609
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 0.40234375,
- "y": 0.40234375
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- },
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
- "x": 0,
- "y": 0
- },
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
"group_item_backup": false,
"hide_transition": {
"duration": 0
},
- "id": 21,
+ "id": 24,
"locked": false,
- "name": "{{ emacsconf_id }} base",
+ "name": "News",
"pos": {
- "x": 9,
- "y": 6
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 1,
- "y": 1
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- },
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
"x": 0,
"y": 0
},
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
- "group_item_backup": false,
- "hide_transition": {
- "duration": 0
- },
- "id": 22,
- "locked": false,
- "name": "Bottom",
- "pos": {
- "x": 112,
- "y": 654
- },
"private_settings": {},
"rot": 0,
"scale": {
@@ -736,11 +492,15 @@
"flags": 0,
"hotkeys": {
"OBSBasic.SelectScene": [],
+ "libobs.hide_scene_item.News": [],
"libobs.hide_scene_item.Screen Capture (XSHM)": [],
- "libobs.hide_scene_item.emacsconf base": [],
+ "libobs.hide_scene_item.Video": [],
+ "libobs.hide_scene_item.Video overlay": [],
"libobs.hide_scene_item.gen-vid": [],
+ "libobs.show_scene_item.News": [],
"libobs.show_scene_item.Screen Capture (XSHM)": [],
- "libobs.show_scene_item.emacsconf base": [],
+ "libobs.show_scene_item.Video": [],
+ "libobs.show_scene_item.Video overlay": [],
"libobs.show_scene_item.gen-vid": []
},
"id": "scene",
@@ -756,7 +516,7 @@
"push-to-talk-delay": 0,
"settings": {
"custom_size": false,
- "id_counter": 11,
+ "id_counter": 14,
"items": [
{
"align": 5,
@@ -846,54 +606,17 @@
"crop_left": 0,
"crop_right": 0,
"crop_top": 0,
- "group_item_backup": true,
+ "group_item_backup": false,
"hide_transition": {
"duration": 0
},
- "id": 8,
+ "id": 12,
"locked": false,
- "name": "News",
+ "name": "Video overlay",
"pos": {
- "x": 12,
- "y": 0
- },
- "private_settings": {},
- "rot": 0,
- "scale": {
- "x": 1,
- "y": 1
- },
- "scale_filter": "disable",
- "show_transition": {
- "duration": 0
- },
- "visible": true
- },
- {
- "align": 5,
- "blend_method": "default",
- "blend_type": "normal",
- "bounds": {
"x": 0,
"y": 0
},
- "bounds_align": 0,
- "bounds_type": 0,
- "crop_bottom": 0,
- "crop_left": 0,
- "crop_right": 0,
- "crop_top": 0,
- "group_item_backup": true,
- "hide_transition": {
- "duration": 0
- },
- "id": 7,
- "locked": false,
- "name": "URL",
- "pos": {
- "x": 114,
- "y": 691
- },
"private_settings": {},
"rot": 0,
"scale": {
@@ -904,7 +627,7 @@
"show_transition": {
"duration": 0
},
- "visible": true
+ "visible": false
},
{
"align": 5,
@@ -920,22 +643,22 @@
"crop_left": 0,
"crop_right": 0,
"crop_top": 0,
- "group_item_backup": true,
+ "group_item_backup": false,
"hide_transition": {
"duration": 0
},
- "id": 6,
+ "id": 13,
"locked": false,
- "name": "Logo",
+ "name": "Video",
"pos": {
"x": 0,
- "y": 603
+ "y": 0
},
"private_settings": {},
"rot": 0,
"scale": {
- "x": 0.40234375,
- "y": 0.40234375
+ "x": 1,
+ "y": 1
},
"scale_filter": "disable",
"show_transition": {
@@ -961,9 +684,9 @@
"hide_transition": {
"duration": 0
},
- "id": 11,
+ "id": 14,
"locked": false,
- "name": "{{ emacsconf_id }} base",
+ "name": "News",
"pos": {
"x": 0,
"y": 0
@@ -985,38 +708,6 @@
"sync": 0,
"versioned_id": "scene",
"volume": 1
- },
- {
- "balance": 0.5,
- "deinterlace_field_order": 0,
- "deinterlace_mode": 0,
- "enabled": true,
- "flags": 0,
- "hotkeys": {},
- "id": "text_ft2_source",
- "mixers": 0,
- "monitoring_type": 0,
- "muted": false,
- "name": "Bottom",
- "prev_ver": 469762051,
- "private_settings": {},
- "push-to-mute": false,
- "push-to-mute-delay": 0,
- "push-to-talk": false,
- "push-to-talk-delay": 0,
- "settings": {
- "font": {
- "face": "Sans Serif",
- "flags": 0,
- "size": 28,
- "style": ""
- },
- "from_file": true,
- "text_file": "/home/{{ emacsconf_id }}-{{ item.id }}/bottom.txt"
- },
- "sync": 0,
- "versioned_id": "text_ft2_source_v2",
- "volume": 1
}
],
"transition_duration": 300,
diff --git a/roles/publish/tasks/main.yml b/roles/publish/tasks/main.yml
index ddee975..128b0fa 100644
--- a/roles/publish/tasks/main.yml
+++ b/roles/publish/tasks/main.yml
@@ -9,19 +9,6 @@
owner: "{{ emacsconf_user }}"
group: "{{ emacsconf_group }}"
mode: '0600'
-- name: Check SSH config for line
- blockinfile:
- path: /home/{{ emacsconf_user }}/.ssh/config
- mode: '0600'
- owner: "{{ emacsconf_user }}"
- group: "{{ emacsconf_group }}"
- create: yes
- block: |
- Host anon-emacsconf
- Hostname git.emacsconf.org
- Port 22
- User anon
- IdentityFile ~/.ssh/id_rsa_anon_git_emacsconf
- name: Install the SSH key for orga
copy:
src: "{{ item }}"
@@ -78,8 +65,9 @@
block:
- name: Check out wiki repository
ansible.builtin.git:
- repo: git@anon-emacsconf:/emacsconf-wiki
+ repo: anon@git.emacsconf.org:/emacsconf-wiki
dest: "{{ emacsconf_edit_wiki_dir }}"
+ ssh_opts: "-i ~/.ssh/id_rsa_anon_git_emacsconf -u anon"
key_file: "~{{ emacsconf_user }}/.ssh/id_rsa_anon_git_emacsconf"
register: wiki_clone
failed_when:
@@ -91,6 +79,7 @@
args:
chdir: "{{ emacsconf_edit_wiki_dir }}"
- name: Check out emacsconf-el
+ tags: wip
ansible.builtin.git:
repo: git@git.emacsconf.org:pub/emacsconf-el
key_file: "~{{ emacsconf_user }}/.ssh/id_rsa"
diff --git a/roles/publish/templates/emacsconf-config.el b/roles/publish/templates/emacsconf-config.el
index e9e4fcc..36ca8a2 100644
--- a/roles/publish/templates/emacsconf-config.el
+++ b/roles/publish/templates/emacsconf-config.el
@@ -40,4 +40,7 @@
:tramp "/ssh:gen:")
(:name "Development" :color "skyblue" :id "dev" :channel "emacsconf-dev"
:tramp "/ssh:dev:")))
-
+(setq emacsconf-stream-overlay-dir
+ (expand-file-name "overlays" (file-name-directory emacsconf-org-file)))
+(setq emacsconf-stream-asset-dir
+ (expand-file-name "assets" (file-name-directory emacsconf-org-file)))