From 03c9247abd628ac862e47bf4e1c4b5c811c9ecd8 Mon Sep 17 00:00:00 2001 From: rocknix Date: Fri, 8 Aug 2025 17:46:24 +0000 Subject: [PATCH] Add OD-Commander filemanager support --- .../packages/apps/commander/package.mk | 30 ++++++++++++++++ .../commander/patches/000-dark-theme.patch | 34 +++++++++++++++++++ .../commander/patches/001-default-paths.patch | 18 ++++++++++ .../ROCKNIX/packages/fonts/dejavu/package.mk | 16 +++++++++ projects/ROCKNIX/packages/lang/gcc/package.mk | 2 ++ .../ROCKNIX/packages/misc/modules/package.mk | 15 ++++++++ .../misc/modules/sources/commander.sh | 11 ++++++ .../misc/modules/sources/gamelist.xml | 2 +- .../ROCKNIX/packages/virtual/image/package.mk | 2 +- 9 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 projects/ROCKNIX/packages/apps/commander/package.mk create mode 100644 projects/ROCKNIX/packages/apps/commander/patches/000-dark-theme.patch create mode 100644 projects/ROCKNIX/packages/apps/commander/patches/001-default-paths.patch create mode 100644 projects/ROCKNIX/packages/fonts/dejavu/package.mk create mode 100644 projects/ROCKNIX/packages/misc/modules/sources/commander.sh diff --git a/projects/ROCKNIX/packages/apps/commander/package.mk b/projects/ROCKNIX/packages/apps/commander/package.mk new file mode 100644 index 0000000000..7510d9caca --- /dev/null +++ b/projects/ROCKNIX/packages/apps/commander/package.mk @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX) + +PKG_NAME="commander" +PKG_VERSION="9aa39d7bcb5d0f6faadaf027a1539d14177a3c7c" +PKG_LICENSE="MIT" +PKG_SITE="https://github.com/od-contrib/commander" +PKG_URL="${PKG_SITE}.git" +PKG_DEPENDS_TARGET="toolchain SDL2 SDL2_image SDL2_gfx SDL2_ttf dejavu" +PKG_LONGDESC="A minimal SDL2 file manager for embedded Linux devices." +PKG_TOOLCHAIN="cmake" + +PKG_CMAKE_OPTS_TARGET+=" -DCMAKE_BUILD_TYPE=Release \ + -DWITH_SYSTEM_SDL_TTF=ON \ + -DWITH_SYSTEM_SDL_GFX=ON \ + -DAUTOSCALE_DPI=0 \ + -DPPU_X=2 \ + -DPPU_Y=2 \ + -DCMDR_GAMEPAD_OPEN=ControllerButton::A \ + -DCMDR_GAMEPAD_PARENT=ControllerButton::B" + +makeinstall_target() { + mkdir -p ${INSTALL}/usr/bin + mkdir -p ${INSTALL}/usr/share/commander + + cp -rf ${PKG_BUILD}/.${TARGET_NAME}/commander ${INSTALL}/usr/bin/ + cp -rf ${PKG_BUILD}/res ${INSTALL}/usr/share/commander/res + + chmod 0755 ${INSTALL}/usr/bin/commander +} diff --git a/projects/ROCKNIX/packages/apps/commander/patches/000-dark-theme.patch b/projects/ROCKNIX/packages/apps/commander/patches/000-dark-theme.patch new file mode 100644 index 0000000000..4561001d0a --- /dev/null +++ b/projects/ROCKNIX/packages/apps/commander/patches/000-dark-theme.patch @@ -0,0 +1,34 @@ +diff --git a/def.h b/def.h +index 231e052..05de582 100755 +--- a/def.h ++++ b/def.h +@@ -36,17 +36,17 @@ + #define DIALOG_BORDER 2 + #define DIALOG_PADDING 8 + // Colors +-#define COLOR_TITLE_BG 102, 85, 74 +-#define COLOR_KEY 255, 0, 255 +-#define COLOR_TEXT_NORMAL 70, 27, 10 +-#define COLOR_TEXT_TITLE 233, 229, 227 +-#define COLOR_TEXT_DIR 75, 70, 164 +-#define COLOR_TEXT_SELECTED 255, 0, 0 +-#define COLOR_CURSOR_1 232, 152, 80 +-#define COLOR_CURSOR_2 232, 201, 173 +-#define COLOR_BG_1 255, 255, 255 +-#define COLOR_BG_2 232, 228, 224 +-#define COLOR_BORDER 102, 85, 74 +-#define COLOR_BORDER_ERROR 128, 55, 55 ++#define COLOR_TITLE_BG 40, 44, 52 // Dark slate gray ++#define COLOR_KEY 198, 120, 221 // Soft purple ++#define COLOR_TEXT_NORMAL 171, 178, 191 // Light gray-blue ++#define COLOR_TEXT_TITLE 255, 255, 255 // White ++#define COLOR_TEXT_DIR 97, 175, 239 // Soft blue ++#define COLOR_TEXT_SELECTED 224, 108, 117 // Soft red ++#define COLOR_CURSOR_1 80, 80, 80 // Charcoal gray ++#define COLOR_CURSOR_2 100, 100, 100 // Slightly lighter gray ++#define COLOR_BG_1 30, 34, 40 // Main dark background ++#define COLOR_BG_2 36, 40, 48 // Slightly lighter background ++#define COLOR_BORDER 56, 60, 72 // Subtle borders ++#define COLOR_BORDER_ERROR 191, 97, 106 // Muted red + + #endif // _DEF_H_ diff --git a/projects/ROCKNIX/packages/apps/commander/patches/001-default-paths.patch b/projects/ROCKNIX/packages/apps/commander/patches/001-default-paths.patch new file mode 100644 index 0000000000..bb79afc2be --- /dev/null +++ b/projects/ROCKNIX/packages/apps/commander/patches/001-default-paths.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1a36617..b716c6a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,10 +25,10 @@ option(USE_SDL2 "Use SDL2 instead of SDL1" ON) + option(WITH_SYSTEM_SDL_GFX "Use system SDL_gfx library" OFF) + option(WITH_SYSTEM_SDL_TTF "Use system SDL_ttf library" OFF) + +-set(RES_DIR \"res/\" CACHE STRING "Resources directory") ++set(RES_DIR \"/usr/share/commander/res/\" CACHE STRING "Resources directory") + set(FILE_SYSTEM \"/dev/mmcblk1p1\" CACHE STRING "Default filesystem (for Disk info)") +-set(PATH_DEFAULT "" CACHE STRING "Default path for the left pane (default: getenv(\"PWD\")") +-set(PATH_DEFAULT_RIGHT "" CACHE STRING "Default path for the right pane (default: getenv(\"HOME\")") ++set(PATH_DEFAULT \"/storage/.config/\" CACHE STRING "Default path for the left pane (default: getenv(\"HOME\")") ++set(PATH_DEFAULT_RIGHT \"/storage/.config/\" CACHE STRING "Default path for the right pane (default: getenv(\"HOME\")") + set(AUTOSCALE 1 CACHE STRING "Auto-detect resolution (maximize on startup if there is a windowing system)") + set(AUTOSCALE_DPI 1 CACHE STRING "Auto-detect DPI scaling factors") + set(WITH_SYSTEM_SDL_TTF OFF CACHE BOOL "Use system sdl_ttf") diff --git a/projects/ROCKNIX/packages/fonts/dejavu/package.mk b/projects/ROCKNIX/packages/fonts/dejavu/package.mk new file mode 100644 index 0000000000..ab1c334b34 --- /dev/null +++ b/projects/ROCKNIX/packages/fonts/dejavu/package.mk @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX) + +PKG_NAME="dejavu" +PKG_VERSION="2.37" +PKG_LICENSE="Bitstream" +PKG_SITE="https://sourceforge.net/projects/dejavu/files/dejavu/${PKG_VERSION}" +PKG_URL="${PKG_SITE}/${PKG_NAME}-fonts-ttf-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="The DejaVu fonts are a font family based upon Bitstream Vera v1.10." +PKG_TOOLCHAIN="manual" + +makeinstall_target() { + mkdir -p ${INSTALL}/usr/share/fonts/truetype/dejavu/ + cp -rf ${PKG_BUILD}/ttf/DejaVuSansCondensed.ttf ${INSTALL}/usr/share/fonts/truetype/dejavu/ +} diff --git a/projects/ROCKNIX/packages/lang/gcc/package.mk b/projects/ROCKNIX/packages/lang/gcc/package.mk index 0bdab805c3..d4b24b51f0 100644 --- a/projects/ROCKNIX/packages/lang/gcc/package.mk +++ b/projects/ROCKNIX/packages/lang/gcc/package.mk @@ -172,6 +172,8 @@ makeinstall_target() { cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libgcc/libgcc_s.so* ${INSTALL}/usr/lib cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libstdc++-v3/src/.libs/libstdc++.so* ${INSTALL}/usr/lib cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libgomp/.libs/*.so* ${INSTALL}/usr/lib + cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libsanitizer/asan/.libs/*.so* ${INSTALL}/usr/lib + cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libsanitizer/ubsan/.libs/*.so* ${INSTALL}/usr/lib if [ "${OPTS_LIBATOMIC}" = "--enable-libatomic" ]; then cp -P ${PKG_BUILD}/.${HOST_NAME}/${TARGET_NAME}/libatomic/.libs/libatomic.so* ${INSTALL}/usr/lib fi diff --git a/projects/ROCKNIX/packages/misc/modules/package.mk b/projects/ROCKNIX/packages/misc/modules/package.mk index 48f787c94f..51322db69e 100644 --- a/projects/ROCKNIX/packages/misc/modules/package.mk +++ b/projects/ROCKNIX/packages/misc/modules/package.mk @@ -16,6 +16,18 @@ case ${DEVICE} in ;; esac +# Fileman or Commander Filemanager +case ${DEVICE} in + SM8250) + PKG_DEPENDS_TARGET+=" commander" + FILEMANAGER="commander" + ;; + *) + PKG_DEPENDS_TARGET+=" fileman" + FILEMANAGER="fileman" + ;; +esac + make_target() { : } @@ -39,5 +51,8 @@ post_makeinstall_target() { then rm -f ${INSTALL}/usr/config/modules/Install* fi + +# Set filemanger + sed -e "s/@FILEMANAGER@/${FILEMANAGER}/g" -i ${INSTALL}/usr/config/modules/gamelist.xml } diff --git a/projects/ROCKNIX/packages/misc/modules/sources/commander.sh b/projects/ROCKNIX/packages/misc/modules/sources/commander.sh new file mode 100644 index 0000000000..438f7c214c --- /dev/null +++ b/projects/ROCKNIX/packages/misc/modules/sources/commander.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2025 ROCKNIX (https://github.com/ROCKNIX) + +. /etc/profile +set_kill set "commander" + +sway_fullscreen "commander" & + +/usr/bin/commander diff --git a/projects/ROCKNIX/packages/misc/modules/sources/gamelist.xml b/projects/ROCKNIX/packages/misc/modules/sources/gamelist.xml index 3c47e69832..941fb9c72b 100755 --- a/projects/ROCKNIX/packages/misc/modules/sources/gamelist.xml +++ b/projects/ROCKNIX/packages/misc/modules/sources/gamelist.xml @@ -1,7 +1,7 @@ - ./fileman.sh + ./@FILEMANAGER@.sh File Manager Enables you to browse the ROCKNIX filesystem and manage files directly on your device. You can also use this tool to copy files from external drives to your ROCKNIX filesystem. Tardigrade and ROCKNIX diff --git a/projects/ROCKNIX/packages/virtual/image/package.mk b/projects/ROCKNIX/packages/virtual/image/package.mk index 5821d85175..de225b4285 100644 --- a/projects/ROCKNIX/packages/virtual/image/package.mk +++ b/projects/ROCKNIX/packages/virtual/image/package.mk @@ -17,7 +17,7 @@ PKG_DEPENDS_TARGET="toolchain squashfs-tools:host dosfstools:host fakeroot:host PKG_UI="emulationstation es-themes textviewer" -PKG_UI_TOOLS="fileman fbgrab grim" +PKG_UI_TOOLS="fbgrab grim" PKG_GRAPHICS="imagemagick"