diff --git a/desktop/README.md b/desktop/README.md new file mode 100644 index 0000000..384d819 --- /dev/null +++ b/desktop/README.md @@ -0,0 +1,8 @@ +# Kioskmodus +- Firefox autostart +- Sway +- Restart Firefox via short cut: ALT+Enter +- Close Firefox via short cut: ALT+Q +## Systemd Service für restart +- Inaktiv wegen wayland + diff --git a/desktop/config.toml b/desktop/config.toml new file mode 100755 index 0000000..76abbc8 --- /dev/null +++ b/desktop/config.toml @@ -0,0 +1,20 @@ +[terminal] +# The VT to run the greeter on. Can be "next", "current" or a number +# designating the VT. +vt = 1 + +# The default session, also known as the greeter. +[default_session] +# with whatever you want started, such as `sway`. +command = "sway --config /etc/kiosk-setting/sway/config" +# if using wlgreet +#command = "sway --config /etc/greetd/sway-config" +# The user to run the command as. The privileges this user must have depends +# on the greeter. A graphical greeter may for example require the user to be +# in the `video` group. +user = "kiosk" + +[initial_session] +command = "sway'" +user = "kiosk" + diff --git a/desktop/firefox.sh b/desktop/firefox.sh new file mode 100755 index 0000000..3a703e2 --- /dev/null +++ b/desktop/firefox.sh @@ -0,0 +1,2 @@ +#!/bin/bash +killall firefox && firefox --kiosk mahn.ke/kiosk diff --git a/desktop/kiosk-setting/sway/config b/desktop/kiosk-setting/sway/config new file mode 100755 index 0000000..780f59f --- /dev/null +++ b/desktop/kiosk-setting/sway/config @@ -0,0 +1,163 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. +#exec firefox kiosk mahn.ke/kiosk +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod1 +# Home row direction keys, like vim +#set $left h +#set $down j +#set $up k +#set $right l +# Your preferred application launcher +set $menu wmenu-run + +include /etc/sway/config-vars.d/* + +bindsym $mod+Return firefox kiosk mahn.ke/kiosk +bindsym $mod+q kill + + # Start your launcher + # bindsym $mod+d exec $menu + + # floating_modifier $mod normal + + # Reload the configuration file + # bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +# + # Move your focus around + #bindsym $mod+$left focus left + #bindsym $mod+$down focus down + #bindsym $mod+$up focus up + #bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + #bindsym $mod+Left focus left + #bindsym $mod+Down focus down + #bindsym $mod+Up focus up + #bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + #bindsym $mod+Shift+$left move left + #bindsym $mod+Shift+$down move down + #bindsym $mod+Shift+$up move up + #bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + # bindsym $mod+Shift+Left move left + # bindsym $mod+Shift+Down move down + # bindsym $mod+Shift+Up move up + #bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # Switch to workspace + # bindsym $mod+1 workspace number 1 + # bindsym $mod+2 workspace number 2 + # bindsym $mod+3 workspace number 3 + # bindsym $mod+4 workspace number 4 + # bindsym $mod+5 workspace number 5 + #bindsym $mod+6 workspace number 6 + #bindsym $mod+7 workspace number 7 + #bindsym $mod+8 workspace number 8 + #bindsym $mod+9 workspace number 9 + #bindsym $mod+0 workspace number 10 + # Move focused container to workspace + #bindsym $mod+Shift+1 move container to workspace number 1 + #bindsym $mod+Shift+2 move container to workspace number 2 + #bindsym $mod+Shift+3 move container to workspace number 3 + #bindsym $mod+Shift+4 move container to workspace number 4 + #bindsym $mod+Shift+5 move container to workspace number 5 + #bindsym $mod+Shift+6 move container to workspace number 6 + #bindsym $mod+Shift+7 move container to workspace number 7 + #bindsym $mod+Shift+8 move container to workspace number 8 + #bindsym $mod+Shift+9 move container to workspace number 9 + #bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + #bindsym $mod+b splith + #bindsym $mod+v splitv + + # Switch the current container between different layout styles + #bindsym $mod+s layout stacking + #bindsym $mod+w layout tabbed + #bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + #bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + #bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + #bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + #bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + #bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + #bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +#mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + # bindsym $left resize shrink width 10px + # bindsym $down resize grow height 10px + # bindsym $up resize shrink height 10px + # bindsym $right resize grow width 10px + + # Ditto, with arrow keys + # bindsym Left resize shrink width 10px + # bindsym Down resize grow height 10px + # bindsym Up resize shrink height 10px + # bindsym Right resize grow width 10px + + # Return to default mode + # bindsym Return mode "default" + # bindsym Escape mode "default" +#} +#bindsym $mod+r mode "resize" +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + # bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + # bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + # bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + #bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle + # Special keys to adjust brightness via brightnessctl + # bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + # bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ + # Special key to take a screenshot with grim + # bindsym Print exec grim + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. + +include /etc/sway/config.d/* diff --git a/desktop/kiosk-setting/sway/config.d/50-systemd-user.conf b/desktop/kiosk-setting/sway/config.d/50-systemd-user.conf new file mode 100755 index 0000000..ab04a90 --- /dev/null +++ b/desktop/kiosk-setting/sway/config.d/50-systemd-user.conf @@ -0,0 +1,9 @@ +# import variables into system-user enviroment +# based on the instructions in the sway wiki +# see also https://github.com/swaywm/sway/issues/5732 +# and https://github.com/systemd/systemd/blob/dfc637d0ff756889e8e5b7cb4ec991eb06069aa1/xorg/50-systemd-user.sh + +exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP + +exec hash dbus-update-activation-environment 2>/dev/null && \ + dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway diff --git a/desktop/kiosk-setting/sway/loop.sh b/desktop/kiosk-setting/sway/loop.sh new file mode 100755 index 0000000..419919c --- /dev/null +++ b/desktop/kiosk-setting/sway/loop.sh @@ -0,0 +1,5 @@ +#!/bin/bash +while true; do + ./firefox.sh + sleep 1 +done diff --git a/desktop/setup.sh b/desktop/setup.sh new file mode 100755 index 0000000..7d2250f --- /dev/null +++ b/desktop/setup.sh @@ -0,0 +1,6 @@ +#!/bin/sh +sudo apt install greetd sway && \ +sudo cp -r desktop/kiosk-setting/ /etc/ && \ +sudo cp config.toml /etc/greetd/config.toml && \ +sudo reboot + diff --git a/desktop/sway/.config.swp b/desktop/sway/.config.swp new file mode 100755 index 0000000..8a0e427 Binary files /dev/null and b/desktop/sway/.config.swp differ diff --git a/desktop/sway/config b/desktop/sway/config new file mode 100755 index 0000000..c33050a --- /dev/null +++ b/desktop/sway/config @@ -0,0 +1,104 @@ +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term konsole +# Your preferred application launcher +set $menu wmenu-run + + +default_border none + +include /etc/sway/config-vars.d/* +exec firefox-esr +# Basics: +# + # Start a terminal + bindsym $mod+Space exec firefox-esr + bindsym $mod+Return exec killall firefox-esr && firefox-esr + + # Kill focused window + bindsym $mod+Shift+q kill + + # Start your launcher + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle + # Special keys to adjust brightness via brightnessctl + bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ + # Special key to take a screenshot with grim + bindsym Print exec grim + +# +# Status Bar: +# +include /etc/sway/config.d/* diff --git a/desktop/sway/config.d/50-systemd-user.conf b/desktop/sway/config.d/50-systemd-user.conf new file mode 100755 index 0000000..ab04a90 --- /dev/null +++ b/desktop/sway/config.d/50-systemd-user.conf @@ -0,0 +1,9 @@ +# import variables into system-user enviroment +# based on the instructions in the sway wiki +# see also https://github.com/swaywm/sway/issues/5732 +# and https://github.com/systemd/systemd/blob/dfc637d0ff756889e8e5b7cb4ec991eb06069aa1/xorg/50-systemd-user.sh + +exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP + +exec hash dbus-update-activation-environment 2>/dev/null && \ + dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway diff --git a/desktop/sway/ffrun.sh b/desktop/sway/ffrun.sh new file mode 100755 index 0000000..a46b0fd --- /dev/null +++ b/desktop/sway/ffrun.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +APP_NAME="firefox-esr" +APP_COMMAND="firefox-esr" + +while true; do + if ! pgrep -x "$APP_NAME" > /dev/null; then + swaymsg exec "$APP_COMMAND" + fi + sleep 1 # Wait a second before checking again +done + diff --git a/desktop/sway/preseed b/desktop/sway/preseed new file mode 160000 index 0000000..84281c0 --- /dev/null +++ b/desktop/sway/preseed @@ -0,0 +1 @@ +Subproject commit 84281c058648cd18ee702d772766cf1a170670e8 diff --git a/post_install.sh b/post_install.sh index 8c9659e..1a9fa92 100644 --- a/post_install.sh +++ b/post_install.sh @@ -1,4 +1,6 @@ -printf "[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=kiosk\n\n[security]\n\n[xdmcp]\n\n[chooser]\n\n[debug]\n" > /etc/gdm3/daemon.conf +#!/usr/bin/env bash +#printf "[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=kiosk\n\n[security]\n\n[xdmcp]\n\n[chooser]\n\n[debug]\n" > /etc/gdm3/daemon.conf + mkdir -p /usr/lib/firefox-esr/distribution tee /usr/lib/firefox-esr/distribution/policies.json > /dev/null <<'EOF' { @@ -6,7 +8,7 @@ tee /usr/lib/firefox-esr/distribution/policies.json > /dev/null <<'EOF' "DisableDeveloperTools": true, "BlockAboutAddons": true, "BlockAboutConfig": true, - "BlockAboutProfiles": true, + "BlockAboutProf#!/usr/bin/env basshiles": true, "BlockAboutSupport": true, "DisableFirefoxAccounts": true, "DisablePrivateBrowsing": true, @@ -57,6 +59,6 @@ chown -R kiosk:kiosk /home/kiosk/.config tee /home/kiosk/.bash_profile > /dev/null <<'EOF' if [ -z "$WAYLAND_DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then - exec cage firefox --kiosk https://c3nav.de + exec cage firefox --kiosk mahn.ke/kiosk fi -EOF \ No newline at end of file +EOF diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..3736f0a --- /dev/null +++ b/setup.sh @@ -0,0 +1,7 @@ +#!/bin/sh +sudo apt install greetd sway && \ +sudo cp -r desktop/kiosk-setting/ /etc/ && \ +sudo cp config.toml /etc/greetd/config.toml && \ +./post_install.sh +sudo reboot +