feat(x11): migrate to pure Xlibre + dwm/dmenu/st stack, fix fcitx5-t9 bottom bar, PM8909 PON shutdown, and remove Wayland
This commit is contained in:
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
exec /usr/bin/X -nocursor -nolisten tcp "$@"
|
||||
@@ -0,0 +1,47 @@
|
||||
Section "ServerFlags"
|
||||
Option "AutoAddDevices" "true"
|
||||
Option "AutoEnableDevices" "true"
|
||||
Option "AutoAddGPU" "false"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "MSM8909 SPI Panel"
|
||||
Driver "modesetting"
|
||||
Option "kmsdev" "/dev/dri/card0"
|
||||
Option "AccelMethod" "none"
|
||||
Option "ShadowFB" "true"
|
||||
Option "SWCursor" "true"
|
||||
Option "PageFlip" "false"
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "DefaultScreen"
|
||||
Device "MSM8909 SPI Panel"
|
||||
DefaultDepth 24
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput keyboard catchall"
|
||||
MatchIsKeyboard "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput pointer catchall"
|
||||
MatchIsPointer "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "libinput touchscreen catchall"
|
||||
MatchIsTouchscreen "on"
|
||||
MatchDevicePath "/dev/input/event*"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
permit persist :wheel
|
||||
permit nopass :wheel as root cmd busybox args poweroff
|
||||
permit nopass :wheel as root cmd busybox args reboot
|
||||
permit nopass :wheel as root cmd /bin/busybox args poweroff
|
||||
permit nopass :wheel as root cmd /bin/busybox args reboot
|
||||
permit nopass :wheel as root cmd poweroff
|
||||
permit nopass :wheel as root cmd reboot
|
||||
permit nopass :wheel as root cmd /sbin/poweroff
|
||||
permit nopass :wheel as root cmd /sbin/reboot
|
||||
permit nopass :wheel as root cmd sxmo_wifitoggle.sh
|
||||
permit nopass setenv { SXMO_OS } :wheel as root cmd sxmo_bluetoothtoggle.sh
|
||||
permit nopass :wheel as root cmd rc-service args bluetooth restart
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
[Login]
|
||||
HandlePowerKey=ignore
|
||||
HandleSuspendKey=ignore
|
||||
HandleHibernateKey=ignore
|
||||
HandleLidSwitch=ignore
|
||||
HandleLidSwitchExternalPower=ignore
|
||||
HandleLidSwitchDocked=ignore
|
||||
|
||||
[Sleep]
|
||||
AllowSuspendInterrupts=yes
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||
<fontconfig>
|
||||
<alias binding="strong">
|
||||
<family>DejaVu SansM Nerd Font</family>
|
||||
<prefer>
|
||||
<family>DejaVuSansM Nerd Font</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias binding="strong">
|
||||
<family>Sxmo</family>
|
||||
<prefer>
|
||||
<family>Fira Code</family>
|
||||
<family>DejaVuSansM Nerd Font</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias binding="strong">
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Fira Code</family>
|
||||
<family>DejaVuSansM Nerd Font</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias binding="strong">
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>Fira Code</family>
|
||||
<family>DejaVuSansM Nerd Font</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias binding="strong">
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>Fira Code</family>
|
||||
<family>DejaVuSansM Nerd Font</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
</fontconfig>
|
||||
@@ -0,0 +1,8 @@
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ((action.id.indexOf("org.freedesktop.ModemManager1.") == 0 ||
|
||||
action.id.indexOf("org.freedesktop.login1.") == 0 ||
|
||||
action.id.indexOf("org.freedesktop.NetworkManager.") == 0) &&
|
||||
(subject.isInGroup("plugdev") || subject.isInGroup("wheel"))) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,9 @@
|
||||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS=@im=fcitx
|
||||
export SXMO_WM=dwm
|
||||
export SXMO_MENU=dmenu
|
||||
export SXMO_TERMINAL=st
|
||||
export DMENU_WRAP_AROUND=1
|
||||
export SXMO_DMENU_PORTRAIT_LINES=12
|
||||
export SXMO_DMENU_LANDSCAPE_LINES=8
|
||||
@@ -0,0 +1,206 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
# Copyright 2022 Sxmo Contributors
|
||||
|
||||
# This script is meant to be sourced on login shells
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
_sxmo_is_running() {
|
||||
unset SXMO_WM
|
||||
|
||||
_XDG_RUNTIME_DIR="$(_sxmo_find_runtime_dir)"
|
||||
|
||||
if pidof -s dwm >/dev/null 2>&1 || DISPLAY=:0 xset q >/dev/null 2>&1; then
|
||||
export SXMO_WM=dwm
|
||||
export SXMO_MENU=dmenu
|
||||
export SXMO_TERMINAL=st
|
||||
[ -z "$DISPLAY" ] && export DISPLAY=:0
|
||||
unset _XDG_RUNTIME_DIR
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -f "${_XDG_RUNTIME_DIR}"/sxmo.swaysock ]; then
|
||||
if SWAYSOCK="$(cat "${_XDG_RUNTIME_DIR}"/sxmo.swaysock)" swaymsg 2>/dev/null
|
||||
then
|
||||
printf "Detected the Sway environment\n" >&2
|
||||
export SXMO_WM=sway
|
||||
unset _XDG_RUNTIME_DIR
|
||||
return 0
|
||||
fi
|
||||
elif [ -e "$XDG_RUNTIME_DIR"/dbus.bus ] && pidof river > /dev/null; then
|
||||
printf "Detected the River environment\n" >&2
|
||||
export SXMO_WM=river
|
||||
unset _XDG_RUNTIME_DIR
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -f "${_XDG_RUNTIME_DIR}"/sxmo.i3sock ]; then
|
||||
if I3SOCK="$(cat "${_XDG_RUNTIME_DIR}"/sxmo.i3sock)" i3-msg 2>/dev/null
|
||||
then
|
||||
printf "Detected the i3 environment\n" >&2
|
||||
export SXMO_WM=i3
|
||||
unset _XDG_RUNTIME_DIR
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
unset _XDG_RUNTIME_DIR
|
||||
|
||||
printf "Sxmo is not running\n" >&2
|
||||
return 1
|
||||
}
|
||||
|
||||
_sxmo_find_runtime_dir() {
|
||||
# Take what we gave to you
|
||||
if [ -n "$XDG_RUNTIME_DIR" ]; then
|
||||
printf %s "$XDG_RUNTIME_DIR"
|
||||
return
|
||||
fi
|
||||
|
||||
# Try something existing
|
||||
for root in /run /var/run; do
|
||||
for path in "$root/user-$(id -u)" "$root/user/$(id -u)"; do
|
||||
if [ -d "$path" ] && [ -w "$path" ]; then
|
||||
printf %s "$path"
|
||||
return
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
if command -v mkrundir > /dev/null 2>&1; then
|
||||
mkrundir
|
||||
return
|
||||
fi
|
||||
|
||||
# Fallback to a shared memory location
|
||||
printf "/dev/shm/user/%s" "$(id -u)"
|
||||
}
|
||||
|
||||
_sxmo_load_environments() {
|
||||
if [ -e /etc/os-release ]; then
|
||||
# shellcheck source=/dev/null
|
||||
. /etc/os-release
|
||||
elif [ -e /usr/lib/os-release ]; then
|
||||
# shellcheck source=/dev/null
|
||||
. /usr/lib/os-release
|
||||
fi
|
||||
export SXMO_OS="${ID:-unknown}"
|
||||
|
||||
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
XDG_RUNTIME_DIR="$(_sxmo_find_runtime_dir)"
|
||||
export XDG_RUNTIME_DIR
|
||||
export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
|
||||
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
||||
|
||||
export SXMO_CACHEDIR="${SXMO_CACHEDIR:-$XDG_CACHE_HOME/sxmo}"
|
||||
|
||||
export SXMO_BLOCKDIR="${SXMO_BLOCKDIR:-$XDG_DATA_HOME/sxmo/block}"
|
||||
export SXMO_BLOCKFILE="${SXMO_BLOCKFILE:-$XDG_CONFIG_HOME/sxmo/block.tsv}"
|
||||
export SXMO_CONTACTFILE="${SXMO_CONTACTFILE:-$XDG_CONFIG_HOME/sxmo/contacts.tsv}"
|
||||
export SXMO_STATE="${SXMO_STATE:-$XDG_RUNTIME_DIR/sxmo.state}"
|
||||
export SXMO_LOGDIR="${SXMO_LOGDIR:-$XDG_DATA_HOME/sxmo/modem}"
|
||||
export SXMO_NOTIFDIR="${SXMO_NOTIFDIR:-$XDG_DATA_HOME/sxmo/notifications}"
|
||||
|
||||
export BEMENU_OPTS="${BEMENU_OPTS:---fn "Fira Code 9" -H 22 -B 2 --hp 4 -s --no-overlap --fixed-height --scrollbar none --cw 2 --bdr "#005577" --tb "#383838" --tf "#aaaaaa" --fb "#383838" --ff "#ffffff" --cb "#ffffff" --cf "#383838" --nb "#1c1c1c" --nf "#ffffff" --ab "#1c1c1c" --af "#ffffff" --hb "#005577" --hf "#ffffff" -w -i}"
|
||||
|
||||
export EDITOR="${EDITOR:-vim}"
|
||||
export BROWSER="${BROWSER:-firefox}"
|
||||
export SHELL="${SHELL:-/bin/sh}"
|
||||
|
||||
PATH="$HOME/.local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
|
||||
export PATH
|
||||
|
||||
if [ -z "$SXMO_DEVICE_NAME" ]; then
|
||||
if [ -e /proc/device-tree/compatible ]; then
|
||||
SXMO_DEVICE_NAME="$(tr -c '\0[:alnum:].,-' '_' < /proc/device-tree/compatible |
|
||||
tr '\0' '\n' | head -n1)"
|
||||
else
|
||||
SXMO_DEVICE_NAME=desktop
|
||||
fi
|
||||
fi
|
||||
export SXMO_DEVICE_NAME
|
||||
|
||||
deviceprofile="$(command -v "sxmo_deviceprofile_$SXMO_DEVICE_NAME.sh")"
|
||||
# shellcheck disable=SC1090
|
||||
if [ -f "$deviceprofile" ]; then
|
||||
. "$deviceprofile"
|
||||
printf "deviceprofile file %s loaded.\n" "$deviceprofile"
|
||||
else
|
||||
printf "WARNING: deviceprofile file not found for %s. Most device functions will not work. Please read: https://sxmo.org/deviceprofile \n" "$SXMO_DEVICE_NAME"
|
||||
touch "$XDG_CACHE_HOME"/sxmo/sxmo.nosuspend
|
||||
touch "$XDG_CACHE_HOME"/sxmo/sxmo.noidle
|
||||
fi
|
||||
unset deviceprofile
|
||||
|
||||
PATH="\
|
||||
$HOME/.local/bin:\
|
||||
$XDG_CONFIG_HOME/sxmo/hooks/$SXMO_DEVICE_NAME:\
|
||||
$XDG_CONFIG_HOME/sxmo/hooks:\
|
||||
$(xdg_data_path "sxmo/default_hooks" 0 ':'):\
|
||||
$PATH"
|
||||
export PATH
|
||||
}
|
||||
|
||||
_sxmo_grab_session() {
|
||||
if ! _sxmo_is_running; then
|
||||
return
|
||||
fi
|
||||
|
||||
XDG_RUNTIME_DIR="$(_sxmo_find_runtime_dir)"
|
||||
export XDG_RUNTIME_DIR
|
||||
|
||||
_sxmo_load_environments
|
||||
|
||||
if [ -f "$XDG_RUNTIME_DIR"/dbus.bus ]; then
|
||||
DBUS_SESSION_BUS_ADDRESS="$(cat "$XDG_RUNTIME_DIR"/dbus.bus)"
|
||||
export DBUS_SESSION_BUS_ADDRESS
|
||||
if ! dbus-send --dest=org.freedesktop.DBus \
|
||||
/org/freedesktop/DBus org.freedesktop.DBus.ListNames \
|
||||
2> /dev/null; then
|
||||
printf "WARNING: The dbus-send test failed with DBUS_SESSION_BUS_ADDRESS=%s. Unsetting...\n" "$DBUS_SESSION_BUS_ADDRESS" >&2
|
||||
unset DBUS_SESSION_BUS_ADDRESS
|
||||
fi
|
||||
else
|
||||
printf "WARNING: No dbus cache file found at %s/dbus.bus.\n" "$XDG_RUNTIME_DIR" >&2
|
||||
fi
|
||||
|
||||
case "$SXMO_WM" in
|
||||
dwm)
|
||||
[ -z "$DISPLAY" ] && export DISPLAY=:0
|
||||
export SXMO_MENU=dmenu
|
||||
export SXMO_TERMINAL=st
|
||||
;;
|
||||
sway)
|
||||
if [ -f "$XDG_RUNTIME_DIR"/sxmo.swaysock ]; then
|
||||
SWAYSOCK="$(cat "$XDG_RUNTIME_DIR"/sxmo.swaysock)"
|
||||
export SWAYSOCK
|
||||
fi
|
||||
;;
|
||||
i3)
|
||||
if [ -f "$XDG_RUNTIME_DIR"/sxmo.i3sock ]; then
|
||||
I3SOCK="$(cat "$XDG_RUNTIME_DIR"/sxmo.i3sock)"
|
||||
export I3SOCK
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_sxmo_prepare_dirs() {
|
||||
uid=$(id -u)
|
||||
gid=$(id -g)
|
||||
mkdir -p "$XDG_RUNTIME_DIR"
|
||||
chmod 700 "$XDG_RUNTIME_DIR"
|
||||
chown "$uid:$gid" "$XDG_RUNTIME_DIR"
|
||||
|
||||
mkdir -p "$XDG_CACHE_HOME/sxmo/"
|
||||
chmod 700 "$XDG_CACHE_HOME"
|
||||
chown "$uid:$gid" "$XDG_CACHE_HOME"
|
||||
|
||||
mkdir -p "$XDG_STATE_HOME"
|
||||
chmod 700 "$XDG_STATE_HOME"
|
||||
chown "$uid:$gid" "$XDG_STATE_HOME"
|
||||
}
|
||||
|
||||
_sxmo_grab_session
|
||||
@@ -0,0 +1,23 @@
|
||||
! Space to setup configversion
|
||||
! configversion: 7bff124b2de16292fe6e7a7e5d3322ae
|
||||
|
||||
dmenu.font: Fira Code:pixelsize=18:style=Regular:antialias=true:autohint=true
|
||||
dmenu.background: #1c1c1c
|
||||
dmenu.foreground: #e0e0e0
|
||||
dmenu.selbackground: #005577
|
||||
dmenu.selforeground: #ffffff
|
||||
|
||||
dwm.font: Fira Code, DejaVuSansM Nerd Font 15px
|
||||
dwm.normbgcolor: #323232
|
||||
dwm.normbordercolor: #444444
|
||||
dwm.normfgcolor: #dddddd
|
||||
dwm.selbgcolor: #005577
|
||||
dwm.selbordercolor: #005577
|
||||
dwm.selfgcolor: #ffffff
|
||||
|
||||
st.font: Fira Code:pixelsize=13:antialias=true:autohint=true
|
||||
st.background: #1c1c1c
|
||||
st.foreground: #e5e5e5
|
||||
st.cursorColor: #cccccc
|
||||
|
||||
svkbd.font: Fira Code:pixelsize=12
|
||||
@@ -1,40 +0,0 @@
|
||||
# Space to setup configversion
|
||||
# configversion: 13fb3d2d9f97f4420f7506e72b90e77d
|
||||
font=monospace:size=13
|
||||
dpi-aware=no
|
||||
pad=2x2
|
||||
|
||||
[colors-dark]
|
||||
# alpha=1.0
|
||||
foreground=eaeaea
|
||||
background=000000
|
||||
regular0=000000 # black
|
||||
regular1=d54e53 # red
|
||||
regular2=b9ca4a # green
|
||||
regular3=e6c547 # yellow
|
||||
regular4=7aa6da # blue
|
||||
regular5=c397d8 # magenta
|
||||
regular6=70c0ba # cyan
|
||||
regular7=eaeaea # white
|
||||
bright0=666666 # bright black
|
||||
bright1=ff3334 # bright red
|
||||
bright2=9ec400 # bright green
|
||||
bright3=e7c547 # bright yellow
|
||||
bright4=7aa6da # bright blue
|
||||
bright5=b77ee0 # bright magenta
|
||||
bright6=54ced6 # bright cyan
|
||||
bright7=ffffff # bright white
|
||||
|
||||
[scrollback]
|
||||
lines=5000
|
||||
|
||||
[key-bindings]
|
||||
scrollback-up-page=Shift+Page_Up
|
||||
scrollback-down-page=Shift+Page_Down
|
||||
scrollback-up-half-page=Page_Up
|
||||
scrollback-down-half-page=Page_Down
|
||||
scrollback-up-line=Shift+Up
|
||||
scrollback-down-line=Shift+Down
|
||||
scrollback-home=Shift+Home
|
||||
scrollback-end=Shift+End
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
-- Space to setup configversion
|
||||
-- configversion: 19ec5c7f9e83bc6534d657f6180feba2
|
||||
conky.config = {
|
||||
out_to_x = false,
|
||||
out_to_wayland = true,
|
||||
output_backend = 'x11',
|
||||
out_to_x = true,
|
||||
out_to_wayland = false,
|
||||
own_window = true,
|
||||
own_window_type = 'override',
|
||||
own_window_transparent = true,
|
||||
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||
double_buffer = true,
|
||||
alignment = 'top_middle',
|
||||
gap_y = 12,
|
||||
own_window_argb_value = 0,
|
||||
own_window_type = 'desktop',
|
||||
gap_x = 0,
|
||||
gap_y = 34,
|
||||
default_color = 'white',
|
||||
default_shade_color = 'black',
|
||||
draw_shades = true,
|
||||
font = 'Sxmo:size=13',
|
||||
font = 'Fira Code:size=14:style=Regular',
|
||||
use_xft = true,
|
||||
update_interval = 15,
|
||||
}
|
||||
|
||||
conky.text = [[${alignc}${font Sxmo:size=34:style=Bold}${time %H:%M}${font}
|
||||
${alignc}${font Sxmo:size=14:style=Bold}${time %a %d %b %Y}${font}]]
|
||||
conky.text = [[${alignc}${font Fira Code:size=32:style=Regular}${time %H:%M}${font}
|
||||
${voffset 4}${alignc}${font Fira Code:size=14:style=Regular}${time %a %d %b %Y}${font}]]
|
||||
|
||||
@@ -17,38 +17,51 @@ stop_proximity_lock() {
|
||||
sxmo_jobs.sh stop proximity_lock
|
||||
}
|
||||
|
||||
exec 0<<EOF
|
||||
STATE_FILE="${SXMO_STATE:-$XDG_RUNTIME_DIR/sxmo.state}"
|
||||
if [ -r "$STATE_FILE" ]; then
|
||||
read -r CURRENT_STATE < "$STATE_FILE" || CURRENT_STATE=""
|
||||
else
|
||||
CURRENT_STATE="$(sxmo_state.sh get)"
|
||||
fi
|
||||
|
||||
if [ "$CURRENT_STATE" != "unlock" ] && sxmo_state.sh is_locked; then
|
||||
case "$ACTION" in
|
||||
"powerbutton_one"|"powerbutton_two"|"powerbutton_three"|"menuleft_one"|"menuright_one"|"enter_one"|"enter_two"|"enter_three")
|
||||
if [ -n "$WAYLAND_DISPLAY" ]; then
|
||||
wlopm --on "*" >/dev/null 2>&1 || sxmo_wm.sh display on
|
||||
else
|
||||
sxmo_wm.sh display on
|
||||
fi
|
||||
if [ -w /sys/class/leds/white:kbd_backlight/brightness ]; then
|
||||
printf '255' > /sys/class/leds/white:kbd_backlight/brightness 2>/dev/null || true
|
||||
else
|
||||
brightnessctl -d white:kbd_backlight set 255 >/dev/null 2>&1 || true
|
||||
fi
|
||||
sxmo_state.sh set unlock &
|
||||
exit 0
|
||||
;;
|
||||
"voldown_one"|"volup_one")
|
||||
exec 0<<EOF
|
||||
$(sxmo_wm.sh focusedwindow -r)
|
||||
EOF
|
||||
read -r WMCLASS
|
||||
read -r WMNAME
|
||||
|
||||
sxmo_debug "STATE: $(sxmo_state.sh get) ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME"
|
||||
|
||||
if sxmo_state.sh is_locked; then
|
||||
case "$WMNAME" in # Handle programs
|
||||
*"epy"*|*"epr"*)
|
||||
case "$ACTION" in
|
||||
"voldown_one")
|
||||
sxmo_type.sh l
|
||||
exit 0
|
||||
;;
|
||||
"volup_one")
|
||||
sxmo_type.sh h
|
||||
read -r WMCLASS
|
||||
read -r WMNAME
|
||||
case "$WMNAME" in
|
||||
*"epy"*|*"epr"*)
|
||||
if [ "$ACTION" = "voldown_one" ]; then
|
||||
sxmo_type.sh l
|
||||
else
|
||||
sxmo_type.sh h
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case "$ACTION" in
|
||||
"powerbutton_one"|"powerbutton_two"|"powerbutton_three"|"menuleft_one"|"menuright_one"|"enter_one"|"enter_two"|"enter_three")
|
||||
brightnessctl -d white:kbd_backlight set 255 >/dev/null 2>&1 || true
|
||||
sxmo_state.sh set unlock
|
||||
sxmo_wm.sh display on
|
||||
;;
|
||||
"voldown_one")
|
||||
sxmo_audio.sh vol down 5
|
||||
exit
|
||||
if [ "$ACTION" = "voldown_one" ]; then
|
||||
sxmo_audio.sh vol down 5
|
||||
else
|
||||
sxmo_audio.sh vol up 5
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"voldown_two")
|
||||
sxmo_audio.sh vol down 10
|
||||
@@ -58,10 +71,6 @@ if sxmo_state.sh is_locked; then
|
||||
sxmo_audio.sh vol down 15
|
||||
exit
|
||||
;;
|
||||
"volup_one")
|
||||
sxmo_audio.sh vol up 5
|
||||
exit
|
||||
;;
|
||||
"volup_two")
|
||||
sxmo_audio.sh vol up 10
|
||||
exit
|
||||
@@ -75,6 +84,31 @@ if sxmo_state.sh is_locked; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$ACTION" in
|
||||
"menuleft"*|"enter_two"|"enter_three"|"powerbutton_two"|"powerbutton_three"|"voldown_two"|"volup_two"|"volup_three"|"topleftcorner"|"toprightcorner"|"bottomrightcorner")
|
||||
WMCLASS=""
|
||||
WMNAME=""
|
||||
;;
|
||||
*)
|
||||
if [ -r "$XDG_RUNTIME_DIR/sxmo.focusedwin" ]; then
|
||||
{
|
||||
read -r WMCLASS || WMCLASS=""
|
||||
read -r WMNAME || WMNAME=""
|
||||
} < "$XDG_RUNTIME_DIR/sxmo.focusedwin"
|
||||
else
|
||||
exec 0<<EOF
|
||||
$(sxmo_wm.sh focusedwindow -r)
|
||||
EOF
|
||||
read -r WMCLASS
|
||||
read -r WMNAME
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$SXMO_DEBUG" ]; then
|
||||
sxmo_debug "STATE: $CURRENT_STATE ACTION: $ACTION WMCLASS: $WMCLASS WMNAME: $WMNAME"
|
||||
fi
|
||||
|
||||
#special context-sensitive handling
|
||||
case "$WMCLASS" in
|
||||
*"mpv"*)
|
||||
@@ -367,7 +401,7 @@ case "$ACTION" in
|
||||
exit 0
|
||||
;;
|
||||
"enter_one")
|
||||
if pidof -q sxmo_RepeatRing.sh; then
|
||||
if pidof -s sxmo_RepeatRing.sh >/dev/null; then
|
||||
sxmo_hook_pickup.sh
|
||||
else
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
|
||||
Executable
+89
@@ -0,0 +1,89 @@
|
||||
#!/bin/sh
|
||||
# configversion: e7cdaa3a889d251bed8a89ce8c622995
|
||||
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
# Please modify this file to your liking
|
||||
|
||||
# Important Instructions:
|
||||
# All processes you launch from this script must
|
||||
# be non-blocking: launch them in the background (using &)
|
||||
# or ensure they return quickly. Only after this script
|
||||
# finishes will the window manager be loaded
|
||||
|
||||
# You will sometime get SMS or calls from not
|
||||
# country code prefixed phone numbers. To make
|
||||
# it easy to fixup configure the default countryu.
|
||||
#export DEFAULT_COUNTRY=FR
|
||||
|
||||
### Configuration Parameters ###
|
||||
|
||||
# Note that this is just a subset of all available
|
||||
# parameters, see the sxmo documentation for more.
|
||||
|
||||
# Use firefox as default browser if installed
|
||||
command -v firefox >/dev/null && export BROWSER=firefox
|
||||
|
||||
# Prepopulate Subreddits menu with custom subreddits
|
||||
#export SXMO_SUBREDDITS="postmarketos pinephoneOfficial pinephone unixporn"
|
||||
|
||||
# Change the default terminal command
|
||||
export TERMCMD="sxmo_terminal.sh"
|
||||
|
||||
# Change the used terminal command
|
||||
# export SXMO_TERMINAL="st"
|
||||
|
||||
# When scrolling past the beginning or end of a menu, wrap it around:
|
||||
#export DMENU_WRAP_AROUND=1
|
||||
|
||||
# Enable audio feedback on keypress
|
||||
#export KEYBOARD_ARGS="-o | clickclack -f $(xdg_data_path sxmo/keytap.wav)"
|
||||
|
||||
# Or, enable vibration feedback on keypress
|
||||
#export KEYBOARD_ARGS="-o | clickclack -V"
|
||||
|
||||
# Set the scale factor in sway
|
||||
# export SXMO_SWAY_SCALE=2
|
||||
|
||||
# To load specific part of configuration depending on the running environment
|
||||
case "$SXMO_WM" in
|
||||
sway)
|
||||
;;
|
||||
dwm)
|
||||
;;
|
||||
esac
|
||||
|
||||
#Set RINGTONE to audio file to play for incoming call
|
||||
export SXMO_RINGTONE="$(xdg_data_path sxmo/ring.ogg)"
|
||||
|
||||
#Set TEXTSOUND to audio file to play when received text message
|
||||
export SXMO_TEXTSOUND="$(xdg_data_path sxmo/notify.ogg)"
|
||||
|
||||
#Set RINGTIME to number of seconds the phone will ring
|
||||
export SXMO_RINGTIME=20
|
||||
|
||||
#Set RINGNUMBER to number of times phone will ring or repeat ringtone
|
||||
#(whichever of SXMO_RINGTIME or SXMO_RINGNUMBER runs less will limit how long phone rings)
|
||||
export SXMO_RINGNUMBER=10
|
||||
|
||||
#Set to the default text for a new text message.
|
||||
export SXMO_DEFAULT_DRAFT="Enter new message here."
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
export SXMO_WM="dwm"
|
||||
export SXMO_MENU="dmenu"
|
||||
export SXMO_TERMINAL="st"
|
||||
export DMENU_WRAP_AROUND=1
|
||||
export SXMO_DMENU_PORTRAIT_LINES=12
|
||||
export SXMO_DMENU_LANDSCAPE_LINES=8
|
||||
export SXMO_DISABLE_LEDS=1
|
||||
export SXMO_NO_VIRTUAL_KEYBOARD=1
|
||||
export NO_AT_BRIDGE=1
|
||||
export GTK_A11Y=none
|
||||
export GTK_USE_PORTAL=0
|
||||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS=@im=fcitx
|
||||
|
||||
export SXMO_BG_IMG="/usr/share/wallpapers/bananarchy.png"
|
||||
@@ -1,296 +0,0 @@
|
||||
# Default config for sway
|
||||
# configversion: 076611fe8cc699bcaa01092a8e4481c0
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
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 sxmo_terminal.sh
|
||||
# Your preferred application launcher
|
||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||
# on the original workspace that the command was run on.
|
||||
set $menu bemenu-run
|
||||
|
||||
font "Sxmo 13"
|
||||
xwayland disable
|
||||
output * scale 1 bg /usr/share/wallpapers/bananarchy.png fill
|
||||
default_orientation vertical
|
||||
|
||||
exec_always sxmo_swayinitconf.sh
|
||||
|
||||
exec_always dbus-update-activation-environment WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP
|
||||
|
||||
mode "menu" {
|
||||
bindsym --locked XF86PowerOff exec sh -c "sxmo_dmenu.sh close; if sxmo_state.sh is_locked; then sxmo_state.sh set unlock; sxmo_wm.sh display on; fi"
|
||||
bindsym --locked XF86PickupPhone exec sh -c "if sxmo_state.sh is_locked; then sxmo_state.sh set unlock; sxmo_wm.sh display on; else wtype -k Return; fi"
|
||||
bindsym --locked XF86KbdLcdMenu1 exec sh -c "sxmo_dmenu.sh close; if sxmo_state.sh is_locked; then sxmo_state.sh set unlock; sxmo_wm.sh display on; fi"
|
||||
bindsym --locked XF86KbdLcdMenu2 exec sh -c "sxmo_dmenu.sh close; if sxmo_state.sh is_locked; then sxmo_state.sh set unlock; sxmo_wm.sh display on; fi"
|
||||
bindsym XF86AudioRaiseVolume exec wtype -k Up
|
||||
bindsym XF86AudioLowerVolume exec wtype -k Down
|
||||
bindswitch --locked lid:on exec sh -c "sxmo_dmenu.sh close; brightnessctl -d white:kbd_backlight set 0; sxmo_state.sh set screenoff"
|
||||
bindswitch --locked lid:off exec sh -c "brightnessctl -d white:kbd_backlight set 255; sxmo_state.sh set unlock; sxmo_wm.sh display on"
|
||||
}
|
||||
|
||||
# Mode specifically for use with Nokia N900 hardware keyboard
|
||||
mode "N900" {
|
||||
# follow the standard sxmo keybinds as far as possible
|
||||
bindsym t exec $term; mode "default"
|
||||
bindsym q mode "default"
|
||||
bindsym Shift+p exec sxmo_appmenu.sh sys; mode "default"
|
||||
bindsym p exec sxmo_appmenu.sh; mode "default"
|
||||
bindsym d exec $menu; mode "default"
|
||||
bindsym Shift+q kill; mode "default"
|
||||
bindsym i exec sxmo_wmmenu.sh windowswitcher; mode "default"
|
||||
bindsym Shift+c reload; mode "default"
|
||||
bindsym f fullscreen; mode "default"
|
||||
bindsym Shift+space floating toggle; mode "default"
|
||||
bindsym a focus parent; mode "default"
|
||||
}
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
input * xkb_options compose:ralt
|
||||
|
||||
# Nokia N900 hardware keyboard
|
||||
input "1:1:TWL4030_Keypad" {
|
||||
xkb_model "nokiarx51"
|
||||
xkb_layout "us"
|
||||
# ralt has special meaning on N900 keyboard so do not use as
|
||||
# compose key
|
||||
xkb_options compose:rwin
|
||||
}
|
||||
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Launch appmenu
|
||||
bindsym $mod+p exec sxmo_appmenu.sh
|
||||
bindsym $mod+Shift+p exec sxmo_appmenu.sh sys
|
||||
|
||||
# Wm menu switcher
|
||||
bindsym $mod+i exec sxmo_wmmenu.sh windowswitcher
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# 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' 'sxmo_power.sh logout'
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# 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
|
||||
|
||||
# Move the focused workspace to output
|
||||
bindsym $mod+Shift+Ctrl+$left move workspace output left
|
||||
bindsym $mod+Shift+Ctrl+$down move workspace output down
|
||||
bindsym $mod+Shift+Ctrl+$up move workspace output up
|
||||
bindsym $mod+Shift+Ctrl+$right move workspace output 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
|
||||
|
||||
# Manual locker
|
||||
bindsym $mod+g exec sxmo_state.sh set locker
|
||||
|
||||
# Shutdown
|
||||
bindsym $mod+t exec sxmo_appmenu.sh power
|
||||
|
||||
#
|
||||
# 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 30px
|
||||
bindsym $down resize grow height 30px
|
||||
bindsym $up resize shrink height 30px
|
||||
bindsym $right resize grow width 30px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 30px
|
||||
bindsym Down resize grow height 30px
|
||||
bindsym Up resize shrink height 30px
|
||||
bindsym Right resize grow width 30px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
position top
|
||||
height 24
|
||||
font "Sxmo 13"
|
||||
|
||||
# When the status_command prints a new line to stdout, swaybar updates.
|
||||
# The default just shows the current date and time.
|
||||
status_command sxmo_status_watch.sh -o pango
|
||||
|
||||
pango_markup enabled
|
||||
|
||||
colors {
|
||||
statusline #ffffff
|
||||
background #323232
|
||||
inactive_workspace #323232 #323232 #ffffff
|
||||
font "Sxmo 13"
|
||||
}
|
||||
}
|
||||
|
||||
for_window [app_id="pinentry-.*"] floating true
|
||||
for_window [app_id="foot" title=".*sxmo/modem/.*/draft.txt.*"] resize set height 25
|
||||
for_window [title="megapixels"] inhibit_idle open
|
||||
for_window [title="ep[yr].*"] inhibit_idle visible
|
||||
|
||||
default_border pixel 2
|
||||
titlebar_border_thickness 2
|
||||
hide_edge_borders smart
|
||||
|
||||
# Need playerctl installed and running
|
||||
bindsym --locked XF86AudioPlay exec playerctl play-pause
|
||||
bindsym --locked XF86AudioPause exec playerctl play-pause
|
||||
bindsym --locked XF86AudioStop exec playerctl stop
|
||||
bindsym --locked XF86AudioNext exec playerctl next
|
||||
bindsym --locked XF86AudioPrev exec playerctl previous
|
||||
|
||||
bindsym --locked XF86MonBrightnessUp exec sxmo_brightness.sh up
|
||||
bindsym --locked XF86MonBrightnessDown exec sxmo_brightness.sh down
|
||||
|
||||
# Nokia N900-specific key bindings:
|
||||
# 1. Bind lock key (XF86ScreenSaver)
|
||||
# Use keycode due to https://github.com/swaywm/sway/issues/8438
|
||||
bindcode --release --locked --input-device="1:1:gpio_keys" 160 exec sxmo_state.sh set unlock
|
||||
# 2. Workaround the lack of a free ModX key on hardware keyboard
|
||||
bindsym --input-device="1:1:TWL4030_Keypad" Shift+space mode "N900"
|
||||
|
||||
bindsym Print exec sxmo_screenshot.sh
|
||||
|
||||
bindsym button2 kill
|
||||
|
||||
bindswitch --locked lid:on exec sh -c "brightnessctl -d white:kbd_backlight set 0; sxmo_state.sh set screenoff"
|
||||
bindswitch --locked lid:off exec sh -c "brightnessctl -d white:kbd_backlight set 255; sxmo_state.sh set unlock; sxmo_wm.sh display on"
|
||||
|
||||
# Nokia 8110 4G hardware keypad bindings (User:Ybon)
|
||||
bindsym --locked --no-repeat XF86KbdLcdMenu1 exec sxmo_hook_inputhandler.sh menuleft_one
|
||||
bindsym --locked --no-repeat XF86KbdLcdMenu2 exec sxmo_hook_inputhandler.sh menuright_one
|
||||
bindsym --locked --no-repeat XF86PickupPhone exec sxmo_multikey.sh pickup enter_one enter_two enter_three
|
||||
|
||||
include /etc/sway/config.d/*
|
||||
|
||||
exec 'printf %s "$SWAYSOCK" > "$XDG_RUNTIME_DIR"/sxmo.swaysock'
|
||||
|
||||
exec sxmo_hook_start.sh
|
||||
|
||||
# vim: ft=swayconfig
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# configversion: 36730424afa6d6bf9e9fb6d111c35504
|
||||
|
||||
dbus-update-activation-environment DISPLAY XDG_CURRENT_DESKTOP
|
||||
|
||||
# Run actions on start
|
||||
sxmo_hook_start.sh &
|
||||
@@ -0,0 +1,16 @@
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
export SXMO_WM=dwm
|
||||
export SXMO_MENU=dmenu
|
||||
export SXMO_TERMINAL=st
|
||||
export DMENU_WRAP_AROUND=1
|
||||
export SXMO_DMENU_PORTRAIT_LINES=12
|
||||
export SXMO_DMENU_LANDSCAPE_LINES=8
|
||||
export SXMO_DISABLE_LEDS=1
|
||||
export SXMO_NO_VIRTUAL_KEYBOARD=1
|
||||
export NO_AT_BRIDGE=1
|
||||
export GTK_A11Y=none
|
||||
export GTK_USE_PORTAL=0
|
||||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS=@im=fcitx
|
||||
@@ -1 +1,2 @@
|
||||
SUBSYSTEM=="leds", ACTION=="add", RUN+="/bin/chgrp video /sys/class/leds/%k/brightness", RUN+="/bin/chmod 0664 /sys/class/leds/%k/brightness"
|
||||
SUBSYSTEM=="backlight", ACTION=="add", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness /sys/class/backlight/%k/bl_power", RUN+="/bin/chmod 0664 /sys/class/backlight/%k/brightness /sys/class/backlight/%k/bl_power"
|
||||
|
||||
Reference in New Issue
Block a user