Compare commits
	
		
			9 Commits
		
	
	
		
			v1.0.0-rc.
			...
			appimage
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 092fbf72b6 | ||
|  | 4d3e77bc9a | ||
|  | ae57550b46 | ||
|  | 6681c0591a | ||
|  | 8597416bb5 | ||
|  | ce94b44997 | ||
|  | 2741e1afaa | ||
|  | b2f5f8e7d0 | ||
|  | c4c32b1615 | 
| @@ -1,4 +1,4 @@ | |||||||
| cmake_minimum_required(VERSION 3.0) | cmake_minimum_required(VERSION 3.11) | ||||||
| project(discord-screenaudio) | project(discord-screenaudio) | ||||||
|  |  | ||||||
| set(CMAKE_CXX_STANDARD 17) | set(CMAKE_CXX_STANDARD 17) | ||||||
| @@ -13,7 +13,7 @@ find_package(Qt5 CONFIG REQUIRED COMPONENTS | |||||||
|   WebEngineWidgets |   WebEngineWidgets | ||||||
| ) | ) | ||||||
|  |  | ||||||
| set(discord-screenaudio_SRC | set(${CMAKE_PROJECT_NAME}_SRC | ||||||
|   src/main.cpp |   src/main.cpp | ||||||
|   src/mainwindow.cpp |   src/mainwindow.cpp | ||||||
|   src/virtmic.cpp |   src/virtmic.cpp | ||||||
| @@ -43,9 +43,12 @@ endif() | |||||||
|  |  | ||||||
| add_subdirectory(submodules/rohrkabel) | add_subdirectory(submodules/rohrkabel) | ||||||
|  |  | ||||||
| add_executable(discord-screenaudio ${discord-screenaudio_SRC}) | add_executable(${CMAKE_PROJECT_NAME} ${${CMAKE_PROJECT_NAME}_SRC}) | ||||||
|  |  | ||||||
| target_link_libraries(discord-screenaudio Qt5::Widgets Qt5::WebEngineWidgets rohrkabel) | target_link_libraries(${CMAKE_PROJECT_NAME} Qt5::Widgets Qt5::WebEngineWidgets rohrkabel) | ||||||
|  |  | ||||||
| install(TARGETS discord-screenaudio DESTINATION bin) | install(TARGETS ${CMAKE_PROJECT_NAME} DESTINATION bin) | ||||||
| install(PROGRAMS assets/discord-screenaudio.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) | install(PROGRAMS assets/${CMAKE_PROJECT_NAME}.desktop DESTINATION share/applications) | ||||||
|  | install(FILES assets/discord.png DESTINATION share/pixmaps) | ||||||
|  |  | ||||||
|  | add_custom_target(appimage ${CMAKE_SOURCE_DIR}/scripts/build-appimage.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) | ||||||
|   | |||||||
| @@ -4,3 +4,4 @@ Name=discord-screenaudio | |||||||
| Exec=discord-screenaudio | Exec=discord-screenaudio | ||||||
| Icon=discord | Icon=discord | ||||||
| Terminal=false | Terminal=false | ||||||
|  | Categories=Audio; | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								assets/discord.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/discord.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.8 KiB | 
| @@ -117,7 +117,7 @@ setInterval(() => { | |||||||
|   ) { |   ) { | ||||||
|     for (const el of document.getElementsByClassName("info-3pQQBb")) { |     for (const el of document.getElementsByClassName("info-3pQQBb")) { | ||||||
|       const aboutEl = document.createElement("div"); |       const aboutEl = document.createElement("div"); | ||||||
|       aboutEl.innerText = "discord-screenaudio v1.0.0-rc.7"; |       aboutEl.innerText = "discord-screenaudio v1.0.0-rc.7 (AppImage)"; | ||||||
|       aboutEl.style.fontSize = "12px"; |       aboutEl.style.fontSize = "12px"; | ||||||
|       aboutEl.style.color = "var(--text-muted)"; |       aboutEl.style.color = "var(--text-muted)"; | ||||||
|       aboutEl.classList.add("dirscordScreenaudioAboutText"); |       aboutEl.classList.add("dirscordScreenaudioAboutText"); | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								scripts/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scripts/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | FROM debian:11 | ||||||
|  | ADD ./prepare-container.sh /tmp/prepare-container.sh | ||||||
|  | RUN /tmp/prepare-container.sh | ||||||
|  | WORKDIR /work | ||||||
							
								
								
									
										32
									
								
								scripts/build-appimage.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								scripts/build-appimage.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | #!/usr/bin/bash | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | # Check if inside of docker container | ||||||
|  | if [ ! -f /.dockerenv ]; then | ||||||
|  |   # Check if docker is available | ||||||
|  |   if ! command -v docker >/dev/null 2>&1; then | ||||||
|  |     echo "Error: Docker is not available." | ||||||
|  |     exit 1 | ||||||
|  |   fi | ||||||
|  |   docker run --rm -u $(id -u) -v "$PWD":/work discord-screenaudio-buildenv bash /work/scripts/build-appimage.sh | ||||||
|  |   exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | tmpdir="$(mktemp -d)" | ||||||
|  | builddir="$tmpdir/build" | ||||||
|  | appdir="$tmpdir/AppDir" | ||||||
|  | export CMAKE_GENERATOR="Ninja" | ||||||
|  | cmake -B "$builddir" -S "$PWD" | ||||||
|  | cmake --build "$builddir" --config Release | ||||||
|  | DESTDIR="$appdir" cmake --install "$builddir" --prefix "/usr" | ||||||
|  | # Include libnss related files | ||||||
|  | mkdir -p "$appdir/AppDir/usr/lib/" | ||||||
|  | cp -rv "/usr/lib/x86_64-linux-gnu/nss" "$appdir/usr/lib/" | ||||||
|  |  | ||||||
|  | VERSION="$(cat version)" linuxdeploy \ | ||||||
|  |   --appdir "$appdir" \ | ||||||
|  |   --icon-file "assets/discord.png" \ | ||||||
|  |   --plugin qt \ | ||||||
|  |   --exclude-library "libpipewire-0.3.so.0" \ | ||||||
|  |   --output appimage | ||||||
							
								
								
									
										37
									
								
								scripts/prepare-container.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								scripts/prepare-container.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  | cd "$(dirname "$0")" | ||||||
|  |  | ||||||
|  | if [ ! -f /.dockerenv ]; then | ||||||
|  |   # Check if docker is available | ||||||
|  |   if ! command -v docker >/dev/null 2>&1; then | ||||||
|  |     echo "Error: Docker is not available." | ||||||
|  |     exit 1 | ||||||
|  |   fi | ||||||
|  |   docker build -t discord-screenaudio-buildenv . | ||||||
|  |   exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "-> Installing dependencies with apt..." | ||||||
|  | export DEBIAN_FRONTEND=noninteractive | ||||||
|  | apt-get update | ||||||
|  | apt-get install -y curl build-essential qtbase5-dev qtwebengine5-dev qt5-qmake cmake ninja-build pkg-config git libpipewire-0.3-dev file | ||||||
|  |  | ||||||
|  | echo "-> Installing linuxdeploy..." | ||||||
|  | tmpdir="$(mktemp -d)" | ||||||
|  | install_appimage() { | ||||||
|  |   curl -Lo "$tmpdir/$1.AppImage" "$2" | ||||||
|  |   chmod +x "$tmpdir/$1.AppImage" | ||||||
|  |   sed '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' -i -i "$tmpdir/$1.AppImage" | ||||||
|  |   (cd "$tmpdir" && ./$1.AppImage --appimage-extract) | ||||||
|  |   mv -v "$tmpdir/squashfs-root" "/opt/$1" | ||||||
|  |   ln -sv "/opt/$1/AppRun" "/usr/local/bin/$1" | ||||||
|  | } | ||||||
|  | install_appimage "linuxdeploy" "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" | ||||||
|  | install_appimage "linuxdeploy-plugin-qt" "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" | ||||||
|  |  | ||||||
|  | echo "-> Cleaning up..." | ||||||
|  | rm -rf "$tmpdir" | ||||||
|  | rm /tmp/prepare-container.sh | ||||||
|  | apt-get clean | ||||||
| @@ -37,7 +37,7 @@ DiscordPage::DiscordPage(QWidget *parent) : QWebEnginePage(parent) { | |||||||
| } | } | ||||||
|  |  | ||||||
| void DiscordPage::injectScript(QString source) { | void DiscordPage::injectScript(QString source) { | ||||||
|   qDebug() << "[main   ] Injecting " << source; |   qDebug() << "[main   ] Injecting" << source; | ||||||
|  |  | ||||||
|   QFile userscript(source); |   QFile userscript(source); | ||||||
|  |  | ||||||
| @@ -78,11 +78,10 @@ void DiscordPage::featurePermissionRequested(const QUrl &securityOrigin, | |||||||
| bool DiscordPage::acceptNavigationRequest(const QUrl &url, | bool DiscordPage::acceptNavigationRequest(const QUrl &url, | ||||||
|                                           QWebEnginePage::NavigationType type, |                                           QWebEnginePage::NavigationType type, | ||||||
|                                           bool isMainFrame) { |                                           bool isMainFrame) { | ||||||
|   qDebug() << url; |   // if (type == QWebEnginePage::NavigationTypeLinkClicked) { | ||||||
|   if (type == QWebEnginePage::NavigationTypeLinkClicked) { |   //   QDesktopServices::openUrl(url); | ||||||
|     QDesktopServices::openUrl(url); |   //   return false; | ||||||
|     return false; |   // } | ||||||
|   } |  | ||||||
|   return true; |   return true; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user