From ade5345d698fe26c32969178191bd8405ec49bef Mon Sep 17 00:00:00 2001 From: itsmanjeet Date: Wed, 29 May 2024 17:59:59 +0200 Subject: [PATCH] added missing tools and functionalities --- elements/components/brightnessctl.yml | 15 ++++ elements/components/cxxopts.yml | 9 ++ elements/components/desktop-shell.yml | 120 +++++++++++++++++++++++--- elements/components/desktop.yml | 68 --------------- elements/components/iio-sway.yml | 11 +++ elements/components/mako.yml | 41 +++++++++ elements/components/pamixer.yml | 12 +++ elements/components/playerctl.yml | 14 +++ 8 files changed, 211 insertions(+), 79 deletions(-) create mode 100644 elements/components/brightnessctl.yml create mode 100644 elements/components/cxxopts.yml delete mode 100644 elements/components/desktop.yml create mode 100644 elements/components/iio-sway.yml create mode 100644 elements/components/mako.yml create mode 100644 elements/components/pamixer.yml create mode 100644 elements/components/playerctl.yml diff --git a/elements/components/brightnessctl.yml b/elements/components/brightnessctl.yml new file mode 100644 index 000000000..904a57142 --- /dev/null +++ b/elements/components/brightnessctl.yml @@ -0,0 +1,15 @@ +id: brightnessctl +version: 0.5.1 +about: Lightweight brightness control tool + +environ: + - ENABLE_SYSTEMD=1 + +script: |- + make && make DESTDIR=%{install-root} install + +depends: + - components/systemd.yml + +sources: + - brightnessctl-%{version}.tar.gz::https://github.com/Hummer12007/brightnessctl/archive/%{version}.tar.gz \ No newline at end of file diff --git a/elements/components/cxxopts.yml b/elements/components/cxxopts.yml new file mode 100644 index 000000000..c4b2a19bc --- /dev/null +++ b/elements/components/cxxopts.yml @@ -0,0 +1,9 @@ +id: cxxopts +version: 3.2.1 +about: Lightweight C++ command line option parser + +sources: + - https://github.com/jarro2783/cxxopts/archive/v%{version}/cxxopts-v%{version}.tar.gz + +build-depends: + - components/cmake.yml \ No newline at end of file diff --git a/elements/components/desktop-shell.yml b/elements/components/desktop-shell.yml index 2893e41b4..f80073393 100644 --- a/elements/components/desktop-shell.yml +++ b/elements/components/desktop-shell.yml @@ -12,8 +12,14 @@ depends: - components/greetd.yml - components/wlgreet.yml - - components/wmenu.yml + - components/bemenu.yml - components/foot.yml + - components/brightnessctl.yml + - components/pipewire.yml + - components/pamixer.yml + - components/mako.yml + - components/playerctl.yml + - components/iio-sway.yml - components/fonts/ibm-plex.yml - components/fonts/noto.yml @@ -83,14 +89,17 @@ script: |- set $term foot - set $menu dmenu_path | wmenu | xargs swaymsg exec -- + set $menu bemenu-run --fn "IBM Plex Sans 11" -b -p "▶" --tf #18B218 --hf "#3DAEE9" --sf "#3DAEE9" --scf "#3DAEE9" | xargs swaymsg exec + + set $background %{datadir}/backgrounds/default.jpeg + set $background_blur %{datadir}/backgrounds/default_blur.jpeg corner_radius 0 titlebar_border_thickness 2 - titlebar_padding 10 + titlebar_padding 5 title_align center - font pango: IBM Plex Sans Regular 12 + font pango: IBM Plex Sans Regular 11 client.focused #2f343f #2f343f #4477ff #4477ff #2f343f client.focused_inactive #2f343f #2f343f #d8dee8 #2f343f #2f343f client.unfocused #2f343f #2f343f #d8dee8 #2f343f #2f343f @@ -103,7 +112,7 @@ script: |- blur_radius 5 shadows on - shadows_on_csd off + shadows_on_csd on shadow_blur_radius 20 shadow_color #0000007F @@ -115,13 +124,16 @@ script: |- # Move minimized windows into Scratchpad (enable|disable) scratchpad_minimize enable - output * bg %{datadir}/backgrounds/default.jpeg fill + output * bg $background fill - 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' + bindswitch lid:on output * disable + bindswitch lid:off output * enable + exec swayidle -w \ + timeout 300 'swaylock -f -i $background_blur' \ + timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ + before-sleep 'swaylock -f -i $background_blur' + exec iio-sway # Start a terminal bindsym $mod+Return exec $term @@ -220,6 +232,33 @@ script: |- # Move focus to the parent container bindsym $mod+a focus parent + # Audio + bindsym $mod+F1 exec pactl set-sink-mute `pactl list sinks short | grep RUNNING | awk '{print $1}'` toggle + bindsym $mod+F2 exec pactl set-sink-volume `pactl list sinks short | grep RUNNING | awk '{print $1}'` -2% + bindsym $mod+F3 exec pactl set-sink-volume `pactl list sinks short | grep RUNNING | awk '{print $1}'` +2% + + # Media + bindsym $mod+F4 exec playerctl previous + bindsym $mod+F5 exec playerctl play-pause + bindsym $mod+F6 exec playerctl next + + # Backlight + # PLEASE NOTE: Light has a small issue with SUID, you should install the version + # that allows the user to run it without SUID + bindsym $mod+F9 exec light -U 5 + bindsym $mod+F10 exec light -A 5 + + # Screenshot + # bindsym $mod+S exec grimshot save screen ~/Pictures/$(date '+%Y-%m-%d-%T')-screenshot.png + # bindsym $mod+Shift+S exec grimshot save area ~/Pictures/$(date '+%Y-%m-%d-%T')-screenshot.png + + input "type:touchpad" { + dwt enabled + tap enabled + middle_emulation enabled + natural_scroll enabled + } + # # Scratchpad: # @@ -266,7 +305,7 @@ script: |- # 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 %X'; do sleep 1; done + status_command while %{bindir}/swaybar-status_command; do sleep 1; done colors { statusline #ffffff @@ -278,6 +317,65 @@ script: |- include %{sysconfdir}/sway/config.d/* EOF + install -v -D -m 0755 /dev/stdin %{install-root}%{bindir}/swaybar-status_command << "EOF" + # Change this according to your device + ################ + # Variables + ################ + + # Keyboard input name + keyboard_input_name="1:1:AT_Translated_Set_2_keyboard" + + # Date and time + date_and_week=$(date "+%Y/%m/%d (w%-V)") + current_time=$(date "+%H:%M") + + ############# + # Commands + ############# + + # Battery or charger + battery_charge=$(upower --show-info $(upower --enumerate | grep 'BAT') | egrep "percentage" | awk '{print $2}') + battery_status=$(upower --show-info $(upower --enumerate | grep 'BAT') | egrep "state" | awk '{print $2}') + + # Audio and multimedia + audio_volume=$(pamixer --sink `pactl list sinks short | grep RUNNING | awk '{print $1}'` --get-volume) + audio_is_muted=$(pamixer --sink `pactl list sinks short | grep RUNNING | awk '{print $1}'` --get-mute) + + # Network + network=$(ip route get 1.1.1.1 | grep -Po '(?<=dev\s)\w+' | cut -f1 -d ' ') + # interface_easyname grabs the "old" interface name before systemd renamed it + interface_easyname=$(dmesg | grep $network | grep renamed | awk 'NF>1{print $NF}') + ping=$(ping -c 1 www.google.es | tail -1| awk '{print $4}' | cut -d '/' -f 2 | cut -d '.' -f 1) + + # Others + language=$(swaymsg -r -t get_inputs | awk '/1:1:AT_Translated_Set_2_keyboard/;/xkb_active_layout_name/' | grep -A1 '\b1:1:AT_Translated_Set_2_keyboard\b' | grep "xkb_active_layout_name" | awk -F '"' '{print $4}') + loadavg_5min=$(cat /proc/loadavg | awk -F ' ' '{print $2}') + + if [ $battery_status = "discharging" ]; + then + battery_pluggedin='⚠' + else + battery_pluggedin='⚡' + fi + + if ! [ $network ] + then + network_active="⛔" + else + network_active="⇆" + fi + + if [ $audio_is_muted = "true" ] + then + audio_active='🔇' + else + audio_active='🔊' + fi + + echo " ⌨ $language | $network_active $interface_easyname ($ping ms) | 🏋 $loadavg_5min | $audio_active $audio_volume% | $battery_pluggedin $battery_charge | $date_and_week 🕘 $current_time " + EOF + install -v -D -m 0644 /dev/stdin %{install-root}%{sysconfdir}/greetd/wlgreet.toml << "EOF" command = "sway" outputMode = "all" diff --git a/elements/components/desktop.yml b/elements/components/desktop.yml deleted file mode 100644 index 357aaaab1..000000000 --- a/elements/components/desktop.yml +++ /dev/null @@ -1,68 +0,0 @@ -id: desktop -version: 0.1.2 -about: Web based desktop environment for rlxos - -depends: - - components/cog.yml - - components/cage.yml - - components/systemd.yml - - components/seatd.yml - -build-depends: - - components/go.yml - - components/make.yml - -script: |- - make -C /rlxos/src/desktop \ - DESTDIR=%{install-root} \ - BUILD_DIR=%{build-root} \ - install - -# install -v -Dm0644 /dev/stdin %{install-root}%{libdir}/sysusers.d/%{id}.conf << "EOF" -# u user_01 - "User Account" /home/user_01 %{bindir}/bash -# m user_01 video -# m user_01 seatd -# EOF -# -# install -v -Dm0644 /dev/stdin %{install-root}%{libdir}/systemd/system/%{id}@.service << "EOF" -# [Unit] -# Description=Web %{id} for %I -# After=systemd-user-sessions.service plymouth-quit-wait.service -# Before=graphical.target -# ConditionPathExists=/dev/tty0 -# Wants=systemd-logind.service -# After=systemd-logind.service -# Conflicts=getty@%i.service -# After=getty@%i.service -# -# [Service] -# Type=simple -# ExecStart=%{bindir}/cage %{bindir}/cog http://localhost:3000 -# Restart=always -# User=user_01 -# UtmpIdentifier=%I -# UtmpMode=user_01 -# TTYPath=/dev/%I -# TTYReset=yes -# TTYVHangup=yes -# TTYVDisallocate=yes -# StandardInput=tty-fail -# PAMName=%{id} -# -# [Install] -# WantedBy=graphical.target -# Alias=display-manager.service -# DefaultInstance=tty7 -# EOF -# -# install -v -Dm0644 /dev/stdin %{install-root}%{libdir}/systemd/system-preset/80-%{id}.preset << "EOF" -# enable %{id}@.service tty1 -# enable %{id}-server.service -# EOF -# -# install -v -Dm0644 /dev/stdin %{install-root}%{sysconfdir}/pam.d/%{id} << "EOF" -# auth required pam_unix.so nullok -# account required pam_unix.so -# session required pam_unix.so -# session required pam_systemd.so -# EOF \ No newline at end of file diff --git a/elements/components/iio-sway.yml b/elements/components/iio-sway.yml new file mode 100644 index 000000000..2b1156b9c --- /dev/null +++ b/elements/components/iio-sway.yml @@ -0,0 +1,11 @@ +id: iio-sway +version: 31-05-2022 +commit: e07477d1b2478fede1446e97424a94c80767819d +about: Rotate Sway outputs based on current accelerometer orientation using iio-sensor-proxy + +depends: + - components/iio-sensor-proxy.yml + - components/dbus.yml + +sources: + - iio-sway-%{commit}.tar.gz::https://github.com/okeri/iio-sway/archive/%{commit}.tar.gz \ No newline at end of file diff --git a/elements/components/mako.yml b/elements/components/mako.yml new file mode 100644 index 000000000..1dc005c8e --- /dev/null +++ b/elements/components/mako.yml @@ -0,0 +1,41 @@ +id: make +version: 1.9.0 +about: Lightweight notification daemon for Wayland + +configure: >- + -Dsd-bus-provider=libsystemd + +post-script: |- + install -v -D -m 0644 /dev/stdin %{install-root}%{libdir}/systemd/user/mako.service << "EOF" + [Unit] + Description=Lightweight Wayland notification daemon + Documentation=man:mako(1) + PartOf=graphical-session.target + After=graphical-session.target + + [Service] + Type=dbus + BusName=org.freedesktop.Notifications + ExecCondition=%{bindir}/sh -c '[ -n "$WAYLAND_DISPLAY" ]' + ExecStart=%{bindir}/mako + ExecReload=%{bindir}/makoctl reload + SystemdService=mako.service + + [Install] + WantedBy=graphical-session.target + EOF + +depends: + - components/gdk-pixbuf.yml + - components/pango.yml + - components/systemd.yml + - components/wayland.yml + - components/jq.yml + +build-depends: + - components/meson.yml + - components/scdoc.yml + - components/wayland-protocols.yml + +sources: + - https://github.com/emersion/mako/releases/download/v%{version}/mako-%{version}.tar.gz \ No newline at end of file diff --git a/elements/components/pamixer.yml b/elements/components/pamixer.yml new file mode 100644 index 000000000..1d1698f6f --- /dev/null +++ b/elements/components/pamixer.yml @@ -0,0 +1,12 @@ +id: pamixer +version: 1.6 +about: Pulseaudio commandline mixer like amixer + +depends: + - components/pulseaudio.yml + +build-depends: + - components/cxxopts.yml + +sources: + - pamixer-%{version}.tar.gz::https://github.com/cdemoulins/pamixer/archive/%{version}.tar.gz \ No newline at end of file diff --git a/elements/components/playerctl.yml b/elements/components/playerctl.yml new file mode 100644 index 000000000..bd20b0382 --- /dev/null +++ b/elements/components/playerctl.yml @@ -0,0 +1,14 @@ +id: playerctl +version: 2.4.1 +about: mpris media player controller and lib for spotify, vlc, audacious, bmp, xmms2, and others. + +depends: + - components/glib.yml + +build-depends: + - components/gobject-introspection.yml + - components/gtk-doc.yml + - components/meson.yml + +sources: + - playerctl-%{version}.tar.gz::https://github.com/altdesktop/playerctl/archive/refs/tags/v%{version}.tar.gz \ No newline at end of file