first commit

This commit is contained in:
duffyduck
2026-10-16 15:55:14 +02:00
commit 65e8b9440d
62 changed files with 4799 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
#!/bin/sh
# Installiert NetClip nach /opt/netclip (als root) oder ~/.local/opt/netclip (als Benutzer).
# Optional: ./install-linux.sh --server https://clip.example.de --token XYZ [--insecure]
# schreibt die Vorgaben nach config.default.json (gilt fuer alle Benutzer beim ersten Start).
set -e
SRC=$(cd "$(dirname "$0")" && pwd)
if [ "$(id -u)" = 0 ]; then
DEST=/opt/netclip; BIN=/usr/local/bin; APPS=/usr/share/applications
else
DEST=$HOME/.local/opt/netclip; BIN=$HOME/.local/bin; APPS=$HOME/.local/share/applications
fi
mkdir -p "$DEST" "$BIN" "$APPS"
cp -a "$SRC"/. "$DEST"/
ln -sf "$DEST/NetClip" "$BIN/netclip"
cp "$SRC/netclip.desktop" "$APPS/netclip.desktop"
SERVER=""; TOKEN=""; KEY=""; VERIFY=true
while [ $# -gt 0 ]; do
case "$1" in
--server) SERVER=$2; shift ;;
--token) TOKEN=$2; shift ;;
--server-key) KEY=$2; shift ;;
--insecure) VERIFY=false ;;
esac
shift
done
if [ -n "$SERVER" ]; then
printf '{"server": "%s", "token": "%s", "server_key": "%s", "verify_tls": %s, "autostart": true}\n' \
"$SERVER" "$TOKEN" "$KEY" "$VERIFY" > "$DEST/config.default.json"
chmod 644 "$DEST/config.default.json"
fi
echo "NetClip installiert in $DEST, Start mit: netclip"
echo "Hinweis Wayland: Paket wl-clipboard installieren (apt install wl-clipboard)."
+9
View File
@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=NetClip
GenericName=Netzwerk-Zwischenablage
Comment=Zwischenablage zwischen Geraeten teilen
Exec=netclip
Icon=edit-paste
Categories=Utility;
StartupNotify=false
@@ -0,0 +1,71 @@
; Inno Setup Skript fuer NetClip (erst "python build.py" unter Windows ausfuehren).
; Interaktiv: NetClip-Setup.exe
; Stille Verteilung (GPO, Intune, PDQ, ...):
; NetClip-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /SERVER=https://clip.example.de /TOKEN=xyz [/SERVERKEY=abc] [/INSECURE=1]
; Die Werte landen in config.default.json im Programmordner und gelten fuer jeden Benutzer beim ersten Start.
; Autostart fuer alle Benutzer wird per HKLM-Run-Key eingerichtet.
#define AppVersion "1.0.0"
[Setup]
AppId={{6C1E8B0B-4E39-4E0C-9C0B-6E1F2C9D5A11}
AppName=NetClip
AppVersion={#AppVersion}
AppPublisher=NetClip
DefaultDirName={autopf}\NetClip
DefaultGroupName=NetClip
OutputDir=..\dist
OutputBaseFilename=NetClip-Setup-{#AppVersion}
Compression=lzma2
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64compatible
PrivilegesRequired=admin
SetupIconFile=netclip.ico
UninstallDisplayIcon={app}\NetClip.exe
CloseApplications=force
[Languages]
Name: "de"; MessagesFile: "compiler:Languages\German.isl"
[Tasks]
Name: "autostart"; Description: "NetClip beim Anmelden starten (alle Benutzer)"
[Files]
Source: "..\dist\NetClip\*"; DestDir: "{app}"; Flags: recursesubdirs ignoreversion
[Icons]
Name: "{group}\NetClip"; Filename: "{app}\NetClip.exe"
Name: "{group}\NetClip deinstallieren"; Filename: "{uninstallexe}"
[Registry]
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NetClip"; \
ValueData: """{app}\NetClip.exe"" --minimized"; Flags: uninsdeletevalue; Tasks: autostart
[Run]
Filename: "{app}\NetClip.exe"; Description: "NetClip starten"; Flags: nowait postinstall skipifsilent runasoriginaluser
[Code]
function JsonEscape(S: String): String;
begin
StringChangeEx(S, '\', '\\', True);
StringChangeEx(S, '"', '\"', True);
Result := S;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
Server, Verify: String;
begin
if CurStep = ssPostInstall then
begin
Server := ExpandConstant('{param:SERVER|}');
if Server <> '' then
begin
if ExpandConstant('{param:INSECURE|0}') = '1' then Verify := 'false' else Verify := 'true';
SaveStringToFile(ExpandConstant('{app}\config.default.json'),
'{"server": "' + JsonEscape(Server) + '", "token": "' + JsonEscape(ExpandConstant('{param:TOKEN|}')) +
'", "server_key": "' + JsonEscape(ExpandConstant('{param:SERVERKEY|}')) + '", "verify_tls": ' + Verify + '}',
False);
end;
end;
end;