init commit
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
https://mirror.nura.eco/postmarketos/v26.06
|
||||
https://dl-cdn.alpinelinux.org/alpine/edge/main
|
||||
https://dl-cdn.alpinelinux.org/alpine/edge/community
|
||||
https://dl-cdn.alpinelinux.org/alpine/edge/testing
|
||||
@@ -0,0 +1,6 @@
|
||||
# Maximum time to wait for SIM card to appear after starting the modem.
|
||||
# Some SIM cards or modem firmwares might take longer to initialize. :(
|
||||
# To avoid blocking boot without a SIM card for too long this is fairly short
|
||||
# by default (4 seconds), but you can increase it to e.g. 30 seconds if necessary.
|
||||
# Set to 0 to disable waiting entirely.
|
||||
sim_wait_time=4
|
||||
@@ -0,0 +1,142 @@
|
||||
# zram settings...
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# load zram kernel module on start?
|
||||
load_on_start=yes
|
||||
|
||||
# unload zram kernel module on stop?
|
||||
unload_on_stop=yes
|
||||
|
||||
# Number of devices.
|
||||
# This value is also passed to the kernel module on modprobe.
|
||||
num_devices=2
|
||||
|
||||
# For each device, specify the following variables
|
||||
# Omitting them is the same as specifying them as empty: It uses defaults
|
||||
# type0, type1, ... are the variables for the types (see below)
|
||||
# size0, size1, ... are the variables for the sizes (in MB)
|
||||
# mlim0, mlim1, ... are the variables for the maximal uncompressed memory (MB)
|
||||
# back0, back1, ... are the variables for the backup device (paths)
|
||||
# icmp0, icmp1, ... are the flags (nonempty = true) whether incompressible
|
||||
# pages are written to the backup device (requires back*)
|
||||
# idle0, idle1, ... are the flags (nonempty = true) whether idle pages are
|
||||
# written to the backup device (requires back*)
|
||||
# wlim0, wlim1, ... set the writeback_limit for idle pages (implies idle*)
|
||||
# algo0, algo1, ... are the variables for the compression algorithms
|
||||
# para0, para1, ... are the variables for the algorithm parameters
|
||||
# flag0, flag1, ... are the variables for the flags
|
||||
# labl0, labl1, ... are the variables for the label name (if you want some)
|
||||
# uuid0, uuid1, ... are the variables for the UUID (if you want to force it)
|
||||
# args0, args1, ... are the variables for additional arguments to zram-init
|
||||
# (args0, args1, ... are eval'd, so quote correspondingly!)
|
||||
# notr0, notr1, ... are the flags (nonempty = true) for "do not trim (discard)"
|
||||
# (set notr* to a nonempty value only for linux-3.14 or earlier or when you
|
||||
# are prepared to waste a lot of memory for a possibly slight speed increase)
|
||||
#
|
||||
# The following are ignored for type swap but not for the other types:
|
||||
# blck0, blck1, ... are the variables for the blocksize (ext2, ext4)
|
||||
# irat0, irat1, ... are the variables for the byte/inode ratio (ext2, ext4)
|
||||
# inod0, inod1, ... are the variables for the inode number (ext2, ext4)
|
||||
# opts0, opts1, ... are the variables for the mount options
|
||||
# mode0, mode1, ... are the variables for the directory mode
|
||||
# owgr0, owgr1, ... are the variables for the directory owner:group
|
||||
#
|
||||
# If the size is 0 (or empty) the device is ignored by the script.
|
||||
#
|
||||
# Available types:
|
||||
# "swap" The device is initialized as a swap device.
|
||||
# The flags variable specifies the priority (16383 if empty).
|
||||
# Use "-" in the flags variable for the default priority (-1)
|
||||
# "/..." The device is mounted on /...
|
||||
# The flags variable specifies the type (ext2, ext4, btrfs, or xfs;
|
||||
# default is ext4)
|
||||
# "-" The filesystem (specified by flags as above) is created in
|
||||
# /dev/zram$NUM but not mounted
|
||||
# Devices with other types are ignored by the script
|
||||
#
|
||||
# Only variables with numbers 0 ... num_devices-1 are used by the script.
|
||||
|
||||
# swap - 500M (or a fourth of available memory if uncommenting)
|
||||
type0=swap
|
||||
flag0= # The default "16383" is fine for us
|
||||
size0=512
|
||||
#size0=`LC_ALL=C free -m | awk '/^Mem:/{print int($2/4)}'`
|
||||
mlim0= # no hard memory limit
|
||||
back0= # no backup device
|
||||
icmp0= # no incompressible page writing to backup device
|
||||
idle0= # no idle page writing to backup device
|
||||
wlim0= # no writeback_limit for idle page writing for backup device
|
||||
notr0= # keep the default on linux-3.15 or newer
|
||||
algo0=zstd # zstd (since linux-4.18), lz4 (since linux-3.15), or lzo.
|
||||
# Size: zstd (best) > lzo > lz4. Speed: lz4 (best) > zstd > lzo
|
||||
para0= # No algorithm parameters
|
||||
labl0=zram_swap # the label name
|
||||
uuid0= # Do not force UUID
|
||||
args0= # we could e.g. have set args0="-L 'zram_swap'" instead of using labl0
|
||||
|
||||
# /tmp - 2G
|
||||
# If you use this, you should put zram-init into the boot runlevel,
|
||||
# and services using /tmp should be in the default runlevel and/or have
|
||||
# rc_need=zram-init in their /etc/conf.d/... file
|
||||
type1=/tmp
|
||||
flag1=ext4
|
||||
size1=2048
|
||||
mlim1= # no hard memory limit
|
||||
back1= # no backup device
|
||||
icmp1= # no incompressible page writing to backup device
|
||||
idle1= # no idle page writing to backup device
|
||||
wlim1= # no writeback_limit for idle page writing for backup device
|
||||
blck1=1024 # the default blocksize of 4096
|
||||
irat1= # bytes/inode ratio
|
||||
inod1= # inode number
|
||||
opts1="strictatime,nosuid,nodev,noexec" # e.g. "relatime" or "noatime" are also reasonable choices
|
||||
mode1=1777
|
||||
owgr1= # No reason to change the default "root:root"
|
||||
notr1= # keep the default on linux-3.15 or newer
|
||||
algo1=zstd
|
||||
para1="level=3" # algorithm-specific parameters such as compression level
|
||||
labl1=tmp_dir
|
||||
uuid1=
|
||||
args1=
|
||||
|
||||
# /var/tmp - 1G
|
||||
type2=/var/tmp
|
||||
flag2=ext2
|
||||
size2=1024
|
||||
mlim2= # no hard memory limit
|
||||
back2= # no backup device
|
||||
icmp2= # no incompressible page writing to backup device
|
||||
idle2= # no idle page writing to backup device
|
||||
wlim2= # no writeback_limit for idle page writing for backup device
|
||||
blck2= # the default blocksize is 4096
|
||||
irat2= # bytes/inode ratio
|
||||
inod2= # inode number
|
||||
opts2=relatime # e.g. "noatime" or "strictatime" are also reasonable choices
|
||||
mode2=1777
|
||||
owgr2= # No reason to change the default "root:root"
|
||||
notr2= # keep the default on linux-3.15 or newer
|
||||
algo2=zstd
|
||||
para2= # No algorithm parameters
|
||||
labl2=var_tmp_dir
|
||||
uuid2=
|
||||
args2=
|
||||
|
||||
# Artificial example with btrfs
|
||||
# (Not actually used here: variables are overridden afterwards by other values)
|
||||
type3=- # Only format the filesystem but actually do not mount it
|
||||
flag3=btrfs
|
||||
size3=1024
|
||||
algo3=zstd
|
||||
labl3=zbtrfs
|
||||
uuid3=
|
||||
args3=
|
||||
|
||||
# swap - 500M
|
||||
# The following is not used by the default (num_devices=3).
|
||||
type3=swap
|
||||
flag3=
|
||||
size3=512
|
||||
algo3=zstd
|
||||
labl3=zram_swap2
|
||||
uuid3=
|
||||
args3=
|
||||
@@ -0,0 +1,30 @@
|
||||
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 poweroff
|
||||
permit nopass :wheel as root cmd /sbin/poweroff
|
||||
permit nopass :wheel as root cmd reboot
|
||||
permit nopass :wheel as root cmd /sbin/reboot
|
||||
permit nopass :wheel as root cmd halt
|
||||
permit nopass :wheel as root cmd /sbin/halt
|
||||
permit nopass :wheel as root cmd openrc-shutdown
|
||||
permit nopass :wheel as root cmd /sbin/openrc-shutdown
|
||||
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
|
||||
permit nopass :wheel as root cmd systemctl args restart bluetooth
|
||||
permit nopass :wheel as root cmd tinydm-set-session
|
||||
permit nopass :wheel as root cmd rc-service args eg25-manager stop
|
||||
permit nopass :wheel as root cmd rc-service args eg25-manager start
|
||||
permit nopass :wheel as root cmd rc-service args modemmanager stop
|
||||
permit nopass :wheel as root cmd rc-service args modemmanager start
|
||||
permit nopass :wheel as root cmd systemctl args start eg25-manager
|
||||
permit nopass :wheel as root cmd systemctl args stop eg25-manager
|
||||
permit nopass :wheel as root cmd systemctl args start ModemManager
|
||||
permit nopass :wheel as root cmd systemctl args stop ModemManager
|
||||
permit nopass :wheel as root cmd rtcwake
|
||||
permit nopass :wheel as root cmd tee args -a /sys/power/wake_lock
|
||||
permit nopass :wheel as root cmd tee args -a /sys/power/wake_unlock
|
||||
permit nopass :wheel as root cmd tee args /sys/power/wakeup_count
|
||||
permit nopass :wheel as root cmd rc-service args hexagonrpcd-adsp-sensorspd stop
|
||||
permit nopass :wheel as root cmd systemctl args stop hexagonrpcd-adsp-sensorspd
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#!/sbin/openrc-run
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
after bootmisc modules
|
||||
provide swap
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting zram swap"
|
||||
if [ ! -f /usr/share/misc/source_deviceinfo ]; then
|
||||
eend 1 "deviceinfo not found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
zramstart
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
if [ "$RC_RUNLEVEL" = "shutdown" ]; then
|
||||
return 0
|
||||
fi
|
||||
ebegin "Stopping zram swap"
|
||||
zramstop
|
||||
eend $?
|
||||
}
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
depend() {
|
||||
after localmount
|
||||
before display-manager tinydm
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Activating swap file"
|
||||
swapfile
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
if [ "$RC_RUNLEVEL" = "shutdown" ]; then
|
||||
return 0
|
||||
fi
|
||||
ebegin "Deactivating swap file"
|
||||
swapoff /swapfile >/dev/null 2>&1 || true
|
||||
eend 0
|
||||
}
|
||||
|
||||
restart() {
|
||||
ebegin "Restarting swap file"
|
||||
start
|
||||
eend $?
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Welcome to Bananarchy Linux v0.0.1 (msm8909) on \l
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
af_packet
|
||||
ipv6
|
||||
panel_mipi_dbi
|
||||
leds_msm8905_torch
|
||||
@@ -0,0 +1,8 @@
|
||||
============================================================
|
||||
BANANARCHY LINUX v0.0.1 (Qualcomm MSM8905 / MSM8909)
|
||||
240x320 Native Sxmo * Multi-Mode T9 * QDSP6 Voice
|
||||
------------------------------------------------------------
|
||||
* Keypad '#' cycles T9 modes: abc / Abc / ABC / Sym / Ctl / 123
|
||||
* Keypad '*' is Space (hold 450ms for Ctrl+ latch)
|
||||
* Run 'bantam' for the Bantam DIY AI agent
|
||||
============================================================
|
||||
@@ -0,0 +1,11 @@
|
||||
PRETTY_NAME="Bananarchy Linux v0.0.1 (msm8909)"
|
||||
NAME="Bananarchy"
|
||||
VERSION_ID="v0.0.1"
|
||||
VERSION="v0.0.1 (msm8909)"
|
||||
ID="bananarchy"
|
||||
ID_LIKE="postmarketos alpine"
|
||||
HOME_URL="https://bananahackers.net/"
|
||||
SUPPORT_URL="https://wiki.nura.eco/wiki/Nokia_8110_4G_(nokia-argon)"
|
||||
BUG_REPORT_URL="https://gitlab.postmarketos.org/postmarketOS/pmaports/issues"
|
||||
LOGO="bananarchy"
|
||||
ANSI_COLOR="1;33"
|
||||
@@ -0,0 +1,40 @@
|
||||
# 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
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
-- Space to setup configversion
|
||||
-- configversion: 19ec5c7f9e83bc6534d657f6180feba2
|
||||
conky.config = {
|
||||
out_to_x = false,
|
||||
out_to_wayland = true,
|
||||
alignment = 'top_middle',
|
||||
gap_y = 12,
|
||||
own_window_argb_value = 0,
|
||||
own_window_type = 'desktop',
|
||||
default_shade_color = 'black',
|
||||
draw_shades = true,
|
||||
font = 'Sxmo:size=13',
|
||||
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}]]
|
||||
@@ -0,0 +1,540 @@
|
||||
#!/bin/sh
|
||||
# configversion: 113bf453dd3310afff192d841089e5ac
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
# Copyright 2022 Sxmo Contributors
|
||||
|
||||
# This script handles input actions, it is called by lisgd for gestures
|
||||
# and by dwm for button presses. Gestures are tied to actions in
|
||||
# sxmo_hook_lisgdstart.sh .
|
||||
|
||||
ACTION="$1"
|
||||
|
||||
# include common definitions
|
||||
# shellcheck source=scripts/core/sxmo_common.sh
|
||||
. sxmo_common.sh
|
||||
|
||||
stop_proximity_lock() {
|
||||
sxmo_jobs.sh stop proximity_lock
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
;;
|
||||
"voldown_two")
|
||||
sxmo_audio.sh vol down 10
|
||||
exit
|
||||
;;
|
||||
"voldown_three")
|
||||
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
|
||||
;;
|
||||
"volup_three")
|
||||
sxmo_audio.sh vol up 15
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
#we're locked, don't process the rest of the script
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#special context-sensitive handling
|
||||
case "$WMCLASS" in
|
||||
*"mpv"*)
|
||||
case "$ACTION" in
|
||||
"oneright")
|
||||
sxmo_type.sh -k Left
|
||||
exit 0
|
||||
;;
|
||||
"oneleft")
|
||||
sxmo_type.sh -k Right
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh m
|
||||
exit 0
|
||||
;;
|
||||
"onedown")
|
||||
sxmo_type.sh p
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"acme"*)
|
||||
case "$ACTION" in
|
||||
"volup_one")
|
||||
xdotool click 3
|
||||
exit 0
|
||||
;;
|
||||
"voldown_one")
|
||||
xdotool click 2
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"links"*)
|
||||
case "$ACTION" in
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
*"onedown")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"netsurf"*)
|
||||
case "$ACTION" in
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
*"onedown")
|
||||
sxmo_type.sh -k Page_Up
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -k Page_Down
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"firefox"*|*"librewolf"*)
|
||||
case "$ACTION" in
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
esac
|
||||
;;
|
||||
*"foot"*|*"st"*|*"vte"*|"terminal") # Terminals
|
||||
case "$WMCLASS" in # Handle programs without touch support
|
||||
*"st"*)
|
||||
case "$WMNAME" in
|
||||
*"weechat"*|*'gomuks'*)
|
||||
case "$ACTION" in
|
||||
*"onedown")
|
||||
sxmo_type.sh -k Page_Up
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -k Page_Down
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"less"*|*"amfora"*)
|
||||
case "$ACTION" in
|
||||
*"onedown")
|
||||
sxmo_type.sh u
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh d
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'irssi'*)
|
||||
case "$ACTION" in
|
||||
"onedown")
|
||||
sxmo_type.sh -M Alt p
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh -M Alt n
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'epy'*|*'epr'*)
|
||||
case "$ACTION" in
|
||||
"onedown")
|
||||
sxmo_type.sh h
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh l
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'nnn'*|'lf')
|
||||
case "$ACTION" in
|
||||
"onedown")
|
||||
sxmo_type.sh -k Down
|
||||
exit 0
|
||||
;;
|
||||
"oneup")
|
||||
sxmo_type.sh -k Up
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$WMNAME" in # Handle programs
|
||||
*"weechat"*)
|
||||
case "$ACTION" in
|
||||
*"oneleft")
|
||||
sxmo_type.sh -M Alt -k a
|
||||
exit 0
|
||||
;;
|
||||
*"oneright")
|
||||
sxmo_type.sh -M Alt -k less
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*" sms")
|
||||
case "$ACTION" in
|
||||
*"upbottomedge")
|
||||
number="$(printf %s "$WMNAME" | sed -e 's|^\"||' -e 's|\"$||' | cut -f1 -d' ')"
|
||||
sxmo_terminal.sh sxmo_modemtext.sh conversationloop "$number"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"tuir"*)
|
||||
if [ "$ACTION" = "rightbottomedge" ]; then
|
||||
sxmo_type.sh o
|
||||
exit 0
|
||||
elif [ "$ACTION" = "leftbottomedge" ]; then
|
||||
sxmo_type.sh s
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
*"less"*)
|
||||
case "$ACTION" in
|
||||
"leftbottomedge")
|
||||
sxmo_type.sh q
|
||||
exit 0
|
||||
;;
|
||||
"leftrightedge_short")
|
||||
sxmo_type.sh q
|
||||
exit 0
|
||||
;;
|
||||
*"oneleft")
|
||||
sxmo_type.sh ":n" -k Return
|
||||
exit 0
|
||||
;;
|
||||
*"oneright")
|
||||
sxmo_type.sh ":p" -k Return
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"amfora"*)
|
||||
case "$ACTION" in
|
||||
"downright")
|
||||
sxmo_type.sh -k Tab
|
||||
exit 0
|
||||
;;
|
||||
"upleft")
|
||||
sxmo_type.sh -M Shift -k Tab
|
||||
exit 0
|
||||
;;
|
||||
*"oneright")
|
||||
sxmo_type.sh -k Return
|
||||
exit 0
|
||||
;;
|
||||
"upright")
|
||||
sxmo_type.sh -M Ctrl t
|
||||
exit 0
|
||||
;;
|
||||
*"oneleft")
|
||||
sxmo_type.sh b
|
||||
exit 0
|
||||
;;
|
||||
"downleft")
|
||||
sxmo_type.sh -M Ctrl w
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*"epy"*|*"epr"*)
|
||||
case "$ACTION" in
|
||||
*"left"|"voldown_one")
|
||||
sxmo_type.sh l
|
||||
exit 0
|
||||
;;
|
||||
*"right"|"volup_one")
|
||||
sxmo_type.sh h
|
||||
exit 0
|
||||
;;
|
||||
"voldown_three"|"twodownbottomedge")
|
||||
sxmo_type.sh q
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*'nnn'*|'lf')
|
||||
case "$ACTION" in
|
||||
*"left")
|
||||
sxmo_type.sh -k Right
|
||||
exit 0
|
||||
;;
|
||||
*"right")
|
||||
sxmo_type.sh -k Left
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$WMCLASS" in # Handle general scrolling without touch support
|
||||
*"st"*)
|
||||
case "$ACTION" in
|
||||
*"onedown")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k b
|
||||
exit 0
|
||||
;;
|
||||
*"oneup")
|
||||
sxmo_type.sh -M Ctrl -M Shift -k f
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"org.gnome.vte.application"|"terminal")
|
||||
case "$ACTION" in
|
||||
# For VTE, fallback to doing nothing,
|
||||
# you're probably dragging the scrollbar
|
||||
*"uprightedge") exit 0 ;;
|
||||
*"downrightedge") exit 0 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
#standard handling
|
||||
case "$ACTION" in
|
||||
"menuright"*|"menuright_one")
|
||||
if sxmo_dmenu.sh isopen; then
|
||||
sxmo_dmenu.sh close
|
||||
else
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"menuleft"*|"menuleft_one")
|
||||
if sxmo_dmenu.sh isopen; then
|
||||
sxmo_dmenu.sh close
|
||||
else
|
||||
sxmo_appmenu.sh sys
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"enter_one")
|
||||
if pidof -q sxmo_RepeatRing.sh; then
|
||||
sxmo_hook_pickup.sh
|
||||
else
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"enter_two")
|
||||
swaymsg focus next >/dev/null 2>&1 || sxmo_wm.sh switchfocus
|
||||
exit 0
|
||||
;;
|
||||
"enter_three")
|
||||
sxmo_wm.sh togglelayout
|
||||
exit 0
|
||||
;;
|
||||
"powerbutton_one")
|
||||
if echo "$WMCLASS" | grep -i "megapixels"; then
|
||||
sxmo_type.sh -k space
|
||||
else
|
||||
sxmo_appmenu.sh power
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"powerbutton_two")
|
||||
sxmo_state.sh click 2
|
||||
exit 0
|
||||
;;
|
||||
"powerbutton_three")
|
||||
sxmo_terminal.sh
|
||||
exit 0
|
||||
;;
|
||||
"voldown_one")
|
||||
if [ -n "$SXMO_NO_VIRTUAL_KEYBOARD" ]; then
|
||||
sxmo_killwindow.sh
|
||||
else
|
||||
sxmo_keyboard.sh toggle
|
||||
fi
|
||||
exit
|
||||
;;
|
||||
"voldown_two")
|
||||
sxmo_wm.sh togglelayout
|
||||
exit
|
||||
;;
|
||||
"voldown_three")
|
||||
sxmo_killwindow.sh
|
||||
exit
|
||||
;;
|
||||
"volup_one")
|
||||
sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
exit
|
||||
;;
|
||||
"volup_two")
|
||||
sxmo_appmenu.sh sys
|
||||
exit
|
||||
;;
|
||||
"volup_three")
|
||||
sxmo_wmmenu.sh
|
||||
exit
|
||||
;;
|
||||
"rightleftedge")
|
||||
sxmo_wm.sh previousworkspace
|
||||
exit 0
|
||||
;;
|
||||
"leftrightedge")
|
||||
sxmo_wm.sh nextworkspace
|
||||
exit 0
|
||||
;;
|
||||
"twoleft")
|
||||
sxmo_wm.sh movepreviousworkspace
|
||||
exit 0
|
||||
;;
|
||||
"tworight")
|
||||
sxmo_wm.sh movenextworkspace
|
||||
exit 0
|
||||
;;
|
||||
"righttopedge")
|
||||
sxmo_brightness.sh up
|
||||
exit 0
|
||||
;;
|
||||
"lefttopedge")
|
||||
sxmo_brightness.sh down
|
||||
exit 0
|
||||
;;
|
||||
"upleftedge")
|
||||
sxmo_audio.sh vol up
|
||||
exit 0
|
||||
;;
|
||||
"downleftedge")
|
||||
sxmo_audio.sh vol down
|
||||
exit 0
|
||||
;;
|
||||
"upbottomedge")
|
||||
if [ -n "$SXMO_NO_VIRTUAL_KEYBOARD" ]; then
|
||||
sxmo_terminal.sh
|
||||
else
|
||||
sxmo_keyboard.sh open
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"downbottomedge")
|
||||
if [ -n "$SXMO_NO_VIRTUAL_KEYBOARD" ]; then
|
||||
sxmo_killwindow.sh
|
||||
else
|
||||
sxmo_keyboard.sh close
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"downtopedge")
|
||||
sxmo_dmenu.sh isopen || sxmo_appmenu.sh "$WMCLASS" "$WMNAME"
|
||||
exit 0
|
||||
;;
|
||||
"twodowntopedge")
|
||||
sxmo_hook_quickactions.sh
|
||||
exit 0
|
||||
;;
|
||||
"uptopedge")
|
||||
sxmo_dmenu.sh close
|
||||
dunstctl close-all
|
||||
exit 0
|
||||
;;
|
||||
"twodownbottomedge")
|
||||
sxmo_killwindow.sh
|
||||
exit 0
|
||||
;;
|
||||
"uprightedge")
|
||||
sxmo_type.sh -k Up
|
||||
exit 0
|
||||
;;
|
||||
"downrightedge")
|
||||
sxmo_type.sh -k Down
|
||||
exit 0
|
||||
;;
|
||||
"leftrightedge_short")
|
||||
sxmo_type.sh -k Left
|
||||
exit 0
|
||||
;;
|
||||
"rightrightedge_short")
|
||||
sxmo_type.sh -k Right
|
||||
exit 0
|
||||
;;
|
||||
"rightbottomedge")
|
||||
sxmo_type.sh -k Return
|
||||
exit 0
|
||||
;;
|
||||
"leftbottomedge")
|
||||
sxmo_type.sh -k BackSpace
|
||||
exit 0
|
||||
;;
|
||||
"topleftcorner")
|
||||
sxmo_appmenu.sh sys
|
||||
exit 0
|
||||
;;
|
||||
"toprightcorner")
|
||||
sxmo_appmenu.sh scripts
|
||||
exit 0
|
||||
;;
|
||||
"bottomleftcorner")
|
||||
sxmo_dmenu.sh close
|
||||
sxmo_keyboard.sh close
|
||||
if [ -n "$WMCLASS" ]; then
|
||||
sxmo_state.sh set lock
|
||||
else
|
||||
sxmo_state.sh set screenoff
|
||||
fi
|
||||
exit 0
|
||||
;;
|
||||
"bottomrightcorner")
|
||||
sxmo_rotate.sh
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,296 @@
|
||||
# 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
|
||||
@@ -0,0 +1,3 @@
|
||||
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="keypad", ENV{ID_INPUT_KEYBOARD}="1"
|
||||
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="gpio-keys", ENV{ID_INPUT_KEYBOARD}="1"
|
||||
SUBSYSTEM=="input", KERNEL=="event*", ATTRS{name}=="pm8941_resin", ENV{ID_INPUT_KEYBOARD}="1"
|
||||
@@ -0,0 +1 @@
|
||||
SUBSYSTEM=="leds", ACTION=="add", RUN+="/bin/chgrp video /sys/class/leds/%k/brightness", RUN+="/bin/chmod 0664 /sys/class/leds/%k/brightness"
|
||||
Reference in New Issue
Block a user