SWMO
Материал из ALT Linux Wiki
Версия от 22:49, 24 марта 2025; Arbars Zagadkin (обсуждение | вклад) (Новая страница: «{{stub}} SWMO - попытка создания мобильного окружения на базе оконного менеджера Sway. Базовые шаги: 0. Заменяем сервис на тот, что под спойлером; 1. Устанавливаем пакет lisgd, bemenu 2. Копируем конфиги и скрипт меню из спойлеров в файлы в скрытой папке .sway {|class="mw-collaps...»)
![]() |
Данная страница находится в разработке. Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной. |
SWMO - попытка создания мобильного окружения на базе оконного менеджера Sway.
Базовые шаги:
0. Заменяем сервис на тот, что под спойлером;
1. Устанавливаем пакет lisgd, bemenu
2. Копируем конфиги и скрипт меню из спойлеров в файлы в скрытой папке .sway
развернутьconfig |
---|
# Default config for sway
#
# 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 foot
# 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.
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
#
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
### Idle configuration
#
# Example configuration:
#
# exec swayidle -w \
# timeout 300 'swaylock -f -c 000000' \
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
# before-sleep 'swaylock -f -c 000000'
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
### Input configuration
#
# Example configuration:
#
# input "2:14:SynPS/2_Synaptics_TouchPad" {
# dwt enabled
# tap enabled
# natural_scroll enabled
# middle_emulation enabled
# }
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
# set $input "1452:594:Apple_Inc._Apple_Internal_Keyboard_/_Trackpad"
#
# input "$input" {
# xkb_layout us,ru
# xkb_options grp:caps_toggle
# }
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# 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' 'swaymsg exit'
#
# 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
#
# 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"
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
position top
status_command i3status -c $HOME/.sway/i3status.conf
#swaybar_command swaybar
# Highly customizable Wayland bar for Sway
# Requires: waybar
#swaybar_command env \
# -u DISPLAY \
# GDK_BACKEND=wayland \
# XDG_SESSION_TYPE=wayland \
# waybar
# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
#status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done
colors {
statusline #ffffff
background #323232
inactive_workspace #32323200 #32323200 #5c5c5c
}
}
input * tap enabled
input * xkb_layout us,ru
input * xkb_options grp:win_space_toggle,grp_led:scroll,compose:ralt
include /etc/sway/config.d/*
exec maco
# ALTMobile
#exec swayidle lock "systemctl suspend -i"
# keyboard
exec wvkbd -l "fullwide,cyrillic,special" --hidden
exec lisgd -d /dev/input/event1 -v -g "1,DU,*,*,R,sh dmenu_menu.sh" >> $TMP/lisgd_log
exec lisgd -d /dev/input/event1 -v -g "1,RL,*,*,R,swaymsg workspace next" >> $TMP/lisgd_log
exec lisgd -d /dev/input/event1 -v -g "1,LR,*,*,R,swaymsg workspace prev" >> $TMP/lisgd_log
exec lisgd -d /dev/input/event1 -v -g "1,UD,*,*,R,pkill -SIGRTMIN wvkbd" >> $TMP/lisgd_log
bindsym XF86AudioRaiseVolume exec pkill -SIGRTMIN wvkbd 2>/dev/null
bindsym XF86AudioLowerVolume exec foot
#bindsym XF86PowerOff exec systemctl suspend -i
exec swayidle -w \
before-sleep 'swaymsg "output * dpms off"' \
after-resume 'swaymsg "output * dpms on"'
#default_orientation vertical
|
развернутьi3status.conf |
---|
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 1
}
order += "wireless _first_"
order += "battery 818"
order += "tztime local"
wireless _first_ {
format_down = "W: down"
format_up = "W: up"
}
battery 818 {
format = "%status %percentage"
format_down = "No battery"
path = "/sys/class/power_supply/rk%d-battery/uevent"
low_threshold = 10
status_chr = "⚡ CHR"
status_bat = "🔋 BAT"
status_unk = "? UNK"
status_full = "☻ FULL"
}
tztime local {
format = "%Y-%m-%d %H:%M:%S"
}
|
развернутьdisplay-manager.service |
---|
[Unit]
Description=Sway start service (will be replaced by tinydm)
# replaces the getty
Conflicts=getty@tty1.service
After=getty@tty1.service
# Needs all the dependencies of the services it's replacing
# (currently getty@tty1.service):
After=rc-local.service plymouth-quit-wait.service systemd-user-sessions.service
OnFailure=getty@tty1.service
# D-Bus is necessary for contacting logind. Logind is required.
Wants=dbus.socket
After=dbus.socket
# This scope is created by pam_systemd when logging in as the user.
# This directive is a workaround to a systemd bug, where the setup of the
# user session by PAM has some race condition, possibly leading to a failure.
# See README for more details.
After=session-c1.scope
# Since we are part of the graphical session, make sure we are started before
# it is complete.
Before=graphical.target
# Prevent starting on systems without virtual consoles
ConditionPathExists=/dev/tty0
Environment=XDG_SESSION_TYPE=wayland
[Service]
User=altlinux
ExecStart=sway
Restart=on-failure
#After=display-manager.service
User=altlinux
PAMName=login
WorkingDirectory=~
Restart=always
RestartSec=5s
# A virtual terminal is needed.
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
# Fail to start if not controlling the tty.
StandardInput=tty-fail
StandardOutput=journal
StandardError=journal
# Log this user with utmp, letting it show up with commands 'w' and 'who'.
UtmpIdentifier=tty1
UtmpMode=user
[Install]
WantedBy=graphical.target
Alias=display-manager.service
|
развернутьbemenu-menu.sh |
---|
#!/bin/sh
repeat=0
actions="light+
light-
volume+
volume-
terminal
telegram-client
reload sway conf
exit from sway
close"
result=$(echo "$actions" | bemenu -l 10 -f monospace 20)
case "$result" in
"light+") command="light -A 5%"
repeat=1
;;
"light-") command="light -U 5%"
repeat=1
;;
"volume+") command="pactl set-sink-volume @DEFAULT_SINK@ +10%"
repeat=1
;;
"volume-") command="pactl set-sink-volume @DEFAULT_SINK@ -10%"
repeat=1
;;
"terminal") command="foot"
;;
"telegram-client") command="telegram"
;;
"browser") command="firefox"
;;
"reload sway conf") command="swaymsg -t command reload"
;;
"exit from sway") command="swaymsg -t command exit"
;;
"close") command="true"
;;
*) command="true"
;;
esac
test -n "$command" && eval "${command}"
test $repeat -eq 1 && sh $0
|
Один из вариантов настроек: https://github.com/Dejvino/pinephone-sway-poc