diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 9dbf101a9117..76ac34d0c41d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1951,6 +1951,12 @@ githubId = 62168569; name = "arjix"; }; + arkimium_76 = { + email = "kamialef2345@gmail.com"; + github = "arkimium"; + githubId = 114994536; + name = "Lycaon Constantine Cayde"; + }; arkivm = { email = "vikram186@gmail.com"; github = "arkivm"; diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index 42e66e86e1a3..5b06424ab9ce 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -19,7 +19,7 @@ in imports = [ ./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ../../desktop-managers/plasma6.nix ./lumina.nix ./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix - ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix + ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix ./lingmo.nix ./cinnamon.nix ./budgie.nix ./deepin.nix ../../desktop-managers/lomiri.nix ]; diff --git a/nixos/modules/services/x11/desktop-managers/lingmo.nix b/nixos/modules/services/x11/desktop-managers/lingmo.nix new file mode 100644 index 000000000000..0d9be06365aa --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/lingmo.nix @@ -0,0 +1,54 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.lingmo; +in { + options = { + services.xserver.desktopManager.lingmo.enable = mkOption { + type = types.bool; + default = false; + description = "Enable the Lingmo Desktop manager"; + }; + }; + + config = mkIf cfg.enable { + services.xserver.displayManager.sessionPackages = [pkgs.lingmo.core]; + services.xserver.displayManager.sddm.theme = mkDefault "lingmo"; + services.accounts-daemon.enable = true; + + environment.pathsToLink = ["/share"]; + environment.systemPackages = let + lingmoPkgs = with pkgs.lingmo; [ + core + lingmoui + texteditor + terminal + videoplayer + wallpapers + statusbar + settings + sddm-theme + screenshots + screenlocker + qt-plugins + launcher + kwin-plugins + filemanager + dock + calculator + liblingmo + ]; + plasmaPkgs = with pkgs.libsForQt5; [ + kglobalaccel + kinit + kwin + ]; + in + lingmoPkgs ++ plasmaPkgs; + }; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index e4309a98f93e..9b160a332eca 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -615,6 +615,7 @@ in { lighttpd = handleTest ./lighttpd.nix {}; limesurvey = handleTest ./limesurvey.nix {}; limine = import ./limine { inherit runTest; }; + lingmo = handleTest ./lingmo.nix {}; listmonk = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./listmonk.nix {}; litestream = handleTest ./litestream.nix {}; lldap = handleTest ./lldap.nix {}; diff --git a/nixos/tests/lingmo.nix b/nixos/tests/lingmo.nix new file mode 100644 index 000000000000..102711807bcc --- /dev/null +++ b/nixos/tests/lingmo.nix @@ -0,0 +1,68 @@ +import ./make-test-python.nix ({pkgs, ...}: { + name = "lingmo"; + meta = with pkgs.lib.maintainers; [arkimium_76]; + + machine = {...}: { + imports = [./common/user-account.nix]; + services.xserver.enable = true; + services.xserver.displayManager.sddm.enable = true; + services.xserver.displayManager.defaultSession = "lingmo-session"; + services.xserver.desktopManager.lingmo.enable = true; + services.xserver.displayManager.autoLogin = { + enable = true; + user = "alice"; + }; + virtualisation.memorySize = 1024; + }; + + enableOCR = true; + + testScript = {nodes, ...}: let + user = nodes.machine.config.users.users.alice; + userCommand = "su - ${user.name} -c 'DISPLAY=:0.0 XDG_RUNTIME_DIR=/run/user/${toString user.uid}'"; + in '' + def assert_process_running(processes): + for process in processes: + machine.wait_until_succeeds("pgrep -f " + process) + + def assert_can_run_app(executable, windows, texts): + machine.execute("${userCommand} ${executable} &") + + for window in windows: + machine.wait_for_window(window) + + for text in texts: + machine.wait_for_text(text) + + with subtest("Wait for login"): + start_all() + machine.wait_for_file("${user.home}/.Xauthority") + machine.succeed("xauth merge ${user.home}/.Xauthority") + + with subtest("Lingmo components are running"): + assert_process_running([ + "chotkeys", + "lingmo-dock", + "lingmo-filemanager", + "lingmo-launcher", + "lingmo-polkit-agent", + "lingmo-powerman", + "lingmo-session", + "lingmo-settings-daemon", + "lingmo-statusbar", + "lingmo-xembedsniproxy", + "kwin_x11" + ]) + + with subtest("Launcher can find apps"): + assert_can_run_app("lingmo-launcher", [], ["Calculator", "File Manager", "Settings", "Terminal"]) + + with subtest("Can run Settings"): + assert_can_run_app("lingmo-settings", ["lingmo-settings"], ["Settings"]) + + with subtest("Can run basic gui apps"): + assert_can_run_app("lingmo-calculator", ["lingmo-calculator"], ["Calculator"]) + assert_can_run_app("lingmo-filemanager", ["lingmo-filemanager"], ["File Manager"]) + assert_can_run_app("lingmo-terminal", ["lingmo-terminal"], ["Terminal"]) + ''; +}) diff --git a/pkgs/applications/lingmo/calculator/default.nix b/pkgs/applications/lingmo/calculator/default.nix new file mode 100644 index 000000000000..00687196b2f7 --- /dev/null +++ b/pkgs/applications/lingmo/calculator/default.nix @@ -0,0 +1,48 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-calculator"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-calculator"; + rev = version; + sha256 = "18r4wpd7467rspdbnkvzsq87gd09jxxjl5ifwvnp8j41lx9s8lmz"; + }; + + buildInputs = with pkgs; [ + qt5-tools + qt5-quickcontrols2 + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Calculator"; + homepage = "https://github.com/lingmoos/lingmo-calculator"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/applications/lingmo/terminal/default.nix b/pkgs/applications/lingmo/terminal/default.nix new file mode 100644 index 000000000000..e8898e5e214a --- /dev/null +++ b/pkgs/applications/lingmo/terminal/default.nix @@ -0,0 +1,53 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-terminal"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-terminal"; + rev = version; + sha256 = "18zkllkj9s5s5a27sa8n4sq2cq18kx0mk09p982zim6d4frk5nq2"; + }; + + buildInputs = with pkgs; [ + qt5-base + qt5-declarative + qt5-tools + qt5-quickcontrols2 + qt5-graphicaleffects + lingmoui + cmake + extra-cmake-modules + qt5-x11extras + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Terminal"; + homepage = "https://github.com/lingmoos/lingmo-terminal"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/core/default.nix b/pkgs/desktops/lingmo/core/default.nix new file mode 100644 index 000000000000..c6dc0362c9fd --- /dev/null +++ b/pkgs/desktops/lingmo/core/default.nix @@ -0,0 +1,59 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-core"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-core"; + rev = version; + sha256 = "0v65zhm59xli70xgif3yrynqmmjy77dcsz4f975ggxa3ylj77p2g"; + }; + + buildInputs = with pkgs; [ + qt5-tools + qt5-quickcontrols2 + cmake + extra-cmake-modules + kcoreaddons5 + libxcursor + qt5-x11extras + qt5-graphicaleffects + kwindowsystem5 + kidletime5 + polkit + polkit-qt5 + xorg-server-devel + xf86-input-libinput + xf86-input-synaptics + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Core"; + homepage = "https://github.com/lingmoos/lingmo-core"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [arkimium_76]; + }; +} diff --git a/pkgs/desktops/lingmo/default.nix b/pkgs/desktops/lingmo/default.nix new file mode 100644 index 000000000000..20d0a8476f1f --- /dev/null +++ b/pkgs/desktops/lingmo/default.nix @@ -0,0 +1,35 @@ +{ pkgs, makeScope, libsForQt5 }: + +makeScope libsForQt5.newScope (self: with self; { + lingmoUpdateScript = { name, version }: pkgs.genericUpdater { + inherit version; + pname = "lingmo-${name}"; + attrPath = "lingmo.${name}"; + versionLister = "${pkgs.common-updater-scripts}/bin/list-git-tags https://github.com/LingmoOS/${name}"; + }; + + fetchFromLingmoGitHub = { name, version, sha256 }: pkgs.fetchFromGitHub { + inherit sha256; + owner = "LingmoOS"; + repo = name; + rev = version; + }; + + calculator = callPackage ../../applications/lingmo/calculator { }; + core = callPackage ./core { }; + dock = callPackage ./dock { }; + filemanager = callPackage ./filemanager { }; + lingmoui = callPackage ../../development/libraries/lingmo/lingmoui { }; + kwin-plugins = callPackage ./kwin-plugins { }; + launcher = callPackage ./launcher { }; + liblingmo = callPackage ../../development/libraries/lingmo/liblingmo { }; + qt-plugins = callPackage ./qt-plugins { }; + screenlocker = callPackage ./screenlocker { }; + sddm-theme = callPackage ./sddm-theme { }; + settings = callPackage ./settings { }; + statusbar = callPackage ./statusbar { }; + terminal = callPackage ../../applications/lingmo/terminal { }; + wallpapers = callPackage ./wallpapers { }; + texteditor = callPackage ./texteditor { }; + videoplayer = callPackage ./videoplayer { }; +}) diff --git a/pkgs/desktops/lingmo/dock/default.nix b/pkgs/desktops/lingmo/dock/default.nix new file mode 100644 index 000000000000..8c94546d67bc --- /dev/null +++ b/pkgs/desktops/lingmo/dock/default.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-dock"; + version = "2.0.3"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-dock"; + rev = version; + sha256 = "1458gn8fh6lzwspqdr89b8c3lk4iqhjyxhsgjj136v8jr10x14a5"; + }; + + buildInputs = with pkgs; [ + qt5-tools + qt5-quickcontrols2 + cmake + extra-cmake-modules + qt5-x11extras + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Dock"; + homepage = "https://github.com/lingmoos/lingmo-dock"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/filemanager/default.nix b/pkgs/desktops/lingmo/filemanager/default.nix new file mode 100644 index 000000000000..b6b520be99d5 --- /dev/null +++ b/pkgs/desktops/lingmo/filemanager/default.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-filemanager"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-filemanager"; + rev = version; + sha256 = "0a12cddik4dkjzr1n2yavmys9j0ji1pyxiks8syvll90dyikm2sj"; + }; + + buildInputs = with pkgs; [ + qt5-quickcontrols2 + cmake + extra-cmake-modules + kwindowsystem5 + kio5 + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - File Manager"; + homepage = "https://github.com/lingmoos/lingmo-filemanager"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/kwin-plugins/default.nix b/pkgs/desktops/lingmo/kwin-plugins/default.nix new file mode 100644 index 000000000000..6d1630fdd906 --- /dev/null +++ b/pkgs/desktops/lingmo/kwin-plugins/default.nix @@ -0,0 +1,56 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-kwin-plugins"; + version = "1.2.4"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-kwin-plugins"; + rev = version; + sha256 = "0mph04qc24rjz5pdv20kfzfcj9q7w3j560b5x1q2cx69ddw81v7p"; + }; + + buildInputs = with pkgs; [ + qt5-declarative + qt5-base + kwin + kdecoration + cmake + extra-cmake-modules + kwindowsystem + kwayland + kguiaddons + kcoreaddons + kconfigwidgets + kconfig + make + gcc + git + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - KWin Plugins"; + homepage = "https://github.com/lingmoos/lingmo-kwin-plugins"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/launcher/default.nix b/pkgs/desktops/lingmo/launcher/default.nix new file mode 100644 index 000000000000..ea4c1c5d4941 --- /dev/null +++ b/pkgs/desktops/lingmo/launcher/default.nix @@ -0,0 +1,50 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-launcher"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-launcher"; + rev = version; + sha256 = "1dnnbf50zkwq6g0in060gllf5vn8dj7by5v54f0lx16g2x86plvv"; + }; + + buildInputs = with pkgs; [ + qt5-quickcontrols2 + qt5-base + kwindowsystem5 + cmake + extra-cmake-modules + qt5-tools + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Launcher"; + homepage = "https://github.com/lingmoos/lingmo-launcher"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [arkimium_76]; + }; +} diff --git a/pkgs/desktops/lingmo/qt-plugins/default.nix b/pkgs/desktops/lingmo/qt-plugins/default.nix new file mode 100644 index 000000000000..fb02906d46da --- /dev/null +++ b/pkgs/desktops/lingmo/qt-plugins/default.nix @@ -0,0 +1,50 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-qt-plugins"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-qt-plugins"; + rev = version; + sha256 = "0kbmqf3knxn5gqdkmarj7vrynjp5cyh7p3ibrgvdl8sdldzdjfi3"; + }; + + buildInputs = with pkgs; [ + qt5-quickcontrols2 + qt5-base + kwindowsystem5 + cmake + extra-cmake-modules + qt5-tools + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Qt5 Plugins"; + homepage = "https://github.com/lingmoos/lingmo-qt-plugins"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/screenlocker/default.nix b/pkgs/desktops/lingmo/screenlocker/default.nix new file mode 100644 index 000000000000..e9df5ddb8531 --- /dev/null +++ b/pkgs/desktops/lingmo/screenlocker/default.nix @@ -0,0 +1,47 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import { }, +}: + +stdenv.mkDerivation rec { + pname = "lingmo-screenlocker"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-screenlocker"; + rev = version; + sha256 = "1nb26lrmspn522r7hwghk5za9h0rl2bcds8n8ayfnmpvx73vr4b5"; + }; + + buildInputs = with pkgs; [ + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Screenlocker"; + homepage = "https://github.com/lingmoos/lingmo-screenlocker"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/sddm-theme/default.nix b/pkgs/desktops/lingmo/sddm-theme/default.nix new file mode 100644 index 000000000000..271f15fb3fd7 --- /dev/null +++ b/pkgs/desktops/lingmo/sddm-theme/default.nix @@ -0,0 +1,46 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-sddm-theme"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-sddm-theme"; + rev = version; + sha256 = "1nb26lrmspn522r7hwghk5za9h0rl2bcds8n8ayfnmpvx73vr4b5"; + }; + + buildInputs = with pkgs; [ + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - SDDM Theme"; + homepage = "https://github.com/lingmoos/lingmo-sddm-theme"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/settings/default.nix b/pkgs/desktops/lingmo/settings/default.nix new file mode 100644 index 000000000000..b210554183c4 --- /dev/null +++ b/pkgs/desktops/lingmo/settings/default.nix @@ -0,0 +1,54 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-settings"; + version = "2.0.2"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-settings"; + rev = version; + sha256 = "05y0vbcxf9x6j9fs8zsj2j9m2an896ra3p90gnikf4a0kqkq9x3l"; + }; + + buildInputs = with pkgs; [ + qt5-base + qt5-quickcontrols2 + qt5-x11extras + freetype2 + fontconfig + networkmanager-qt + modemmanager-qt + libqtxdg + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Settings"; + homepage = "https://github.com/lingmoos/lingmo-settings"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/statusbar/default.nix b/pkgs/desktops/lingmo/statusbar/default.nix new file mode 100644 index 000000000000..d22ca1030d06 --- /dev/null +++ b/pkgs/desktops/lingmo/statusbar/default.nix @@ -0,0 +1,51 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-statusbar"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-statusbar"; + rev = version; + sha256 = "0k3as2rp6ryj0v4kbbi2h73hihmc1fib01p45khs82c66qq0s3hy"; + }; + + buildInputs = with pkgs; [ + kwindowsystem5 + qt5-base + qt5-x11extras + qt5-quickcontrols2 + qt5-tools + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Status Bar"; + homepage = "https://github.com/lingmoos/lingmo-statusbar"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/texteditor/default.nix b/pkgs/desktops/lingmo/texteditor/default.nix new file mode 100644 index 000000000000..7e26f3244413 --- /dev/null +++ b/pkgs/desktops/lingmo/texteditor/default.nix @@ -0,0 +1,50 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-texteditor"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-texteditor"; + rev = version; + sha256 = "03cwx62f24ry9xaa9fcl489knzdgmx8dk7avizs3p8wbvahjaapn"; + }; + + buildInputs = with pkgs; [ + qt5-base + qt5-quickcontrols + qt5-tools + syntax-highlighting5 + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Texteditor"; + homepage = "https://github.com/lingmoos/lingmo-texteditor"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} diff --git a/pkgs/desktops/lingmo/videoplayer/default.nix b/pkgs/desktops/lingmo/videoplayer/default.nix new file mode 100644 index 000000000000..3fe26fbc5b2f --- /dev/null +++ b/pkgs/desktops/lingmo/videoplayer/default.nix @@ -0,0 +1,48 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lingmo-videoplayer"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lingmo-videoplayer"; + rev = version; + sha256 = "1gw784bqsvxidn8wlxylpg84bjbh5flpzsnmqrxn321x6vihya93"; + }; + + buildInputs = with pkgs; [ + mpv + qt5-base + qt5-quickcontrols2 + qt5-tools + cmake + extra-cmake-modules + ]; + + buildPhase = '' + echo "Compiling $pkgname" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Video Player"; + homepage = "https://github.com/lingmoos/lingmo-videoplayer"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} + diff --git a/pkgs/development/libraries/liblingmo/default.nix b/pkgs/development/libraries/liblingmo/default.nix new file mode 100644 index 000000000000..ea67eb49f436 --- /dev/null +++ b/pkgs/development/libraries/liblingmo/default.nix @@ -0,0 +1,42 @@ +{ lib, fetchFromLingmoGitHub, pkgs ? import {} }: + +let + name = "lib_lingmo"; + version = "1.10.1"; +in + +pkgs.stdenv.mkDerivation rec { + pname = "lingmo-${name}"; + + src = fetchFromLingmoGitHub { + inherit name version; + sha256 = "17dcgivspa3sk29x0ps1jzbj67q4m9smwpwi4kabz2cykc3b16lg"; + }; + + buildInputs = with pkgs; [ + qt5-quickcontrols2 networkmanager-qt5 modemmanager-qt5 bluez-qt5 + libkscreen5 kio5 qt5-sensors + cmake extra-cmake-modules make gcc pkgconf + ]; + + buildPhase = '' + echo "Compiling ${pname}" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS - Screenlocker"; + homepage = "https://lingmo.org/"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arkimium_76 ]; + }; +} \ No newline at end of file diff --git a/pkgs/development/libraries/lingmo/liblingmo/default.nix b/pkgs/development/libraries/lingmo/liblingmo/default.nix new file mode 100644 index 000000000000..3e22886fd6ce --- /dev/null +++ b/pkgs/development/libraries/lingmo/liblingmo/default.nix @@ -0,0 +1,55 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "lib_lingmo"; + version = "1.10.1"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "lib_lingmo"; + rev = version; + sha256 = "17dcgivspa3sk29x0ps1jzbj67q4m9smwpwi4kabz2cykc3b16lg"; + }; + + buildInputs = with pkgs; [ + qt5-quickcontrols2 + libsForQt5.qt5.qtbase + modemmanager + libsForQt5.qt5.qtsensors + libsForQt5.networkmanager-qt + libsFirQt5.libkscreen + libsForQt5.bluez-qt + libsForQt5.kio + cmake + extra-cmake-modules + libsForQt5.qt5.qtdeclarative + libsForQt5.qt5.qttools + libpulseaudio + libcanberra + ]; + + buildPhase = '' + echo "Compiling ${pname}" + mkdir -pv $out/build && cd $out/build + cmake .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoOS System Library"; + homepage = "https://github.com/lingmoos/lib_lingmo"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [arkimium_76]; + }; +} diff --git a/pkgs/development/libraries/lingmo/lingmoui/default.nix b/pkgs/development/libraries/lingmo/lingmoui/default.nix new file mode 100644 index 000000000000..d78b984af119 --- /dev/null +++ b/pkgs/development/libraries/lingmo/lingmoui/default.nix @@ -0,0 +1,49 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkgs ? import {}, +}: +stdenv.mkDerivation rec { + pname = "LingmoUI"; + version = "3.1.1"; + + src = fetchFromGitHub { + owner = "LingmoOS"; + repo = "LingmoUI"; + rev = version; + sha256 = "1gjkd6yy6m69gcqf6vypds99j039x2bjxjyjz54qpcm3b4w3rgj8"; + }; + + buildInputs = with pkgs; [ + qt5-quickcontrols2 + qt5-x11extras + kwindowsystem5 + cmake + extra-cmake-modules + make + gcc + pkgconf + ]; + + buildPhase = '' + echo "Compiling ${pname}" + mkdir -pv $out/build && cd $out/build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. + make -j$(nproc) || return 1 + ''; + + installPhase = '' + mkdir -pv $out + cd $out/build + make DESTDIR=$out install + ''; + + meta = with lib; { + description = "LingmoUI is a GUI library based on QQC2 (Qt Quick Controls 2), every Lingmo application uses it."; + homepage = "https://github.com/lingmoos/LingmoUI"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [arkimium_76]; + }; +}