Archived
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d48b2ed21b | ||
|
|
4e1d26797f | ||
|
|
98568515ea | ||
|
|
fcd994c9f7 | ||
|
|
a9f4020487 | ||
|
|
8b0b1e25b3 | ||
|
|
a1455d88d8 | ||
|
|
3e9d9c0aa5 | ||
|
|
8a68105f01 | ||
|
|
fedc4a80c4 | ||
|
|
99a9857a5e | ||
|
|
7c034efeea |
@@ -63,3 +63,32 @@ jobs:
|
|||||||
dist/*.AppImage
|
dist/*.AppImage
|
||||||
dist/*.deb
|
dist/*.deb
|
||||||
dist/*.rpm
|
dist/*.rpm
|
||||||
|
|
||||||
|
- name: Install Nix
|
||||||
|
uses: cachix/install-nix-action@v31
|
||||||
|
|
||||||
|
- name: Update flake.nix hashes
|
||||||
|
env:
|
||||||
|
VERSION: ${{ steps.bump.outputs.version }}
|
||||||
|
run: |
|
||||||
|
X86_SRI=$(nix-hash --type sha256 --flat --sri dist/linear-linux-${VERSION}-x86_64.AppImage)
|
||||||
|
ARM_SRI=$(nix-hash --type sha256 --flat --sri dist/linear-linux-${VERSION}-arm64.AppImage)
|
||||||
|
|
||||||
|
sed -i "s|version = \".*\";|version = \"${VERSION}\";|" flake.nix
|
||||||
|
sed -i "s|hash = \"sha256-.*\"; # x86_64|hash = \"${X86_SRI}\"; # x86_64|" flake.nix
|
||||||
|
sed -i "s|hash = \"sha256-.*\"; # aarch64|hash = \"${ARM_SRI}\"; # aarch64|" flake.nix
|
||||||
|
|
||||||
|
grep -q "${X86_SRI}" flake.nix || { echo "::error::Failed to update x86_64 hash"; exit 1; }
|
||||||
|
grep -q "${ARM_SRI}" flake.nix || { echo "::error::Failed to update aarch64 hash"; exit 1; }
|
||||||
|
|
||||||
|
- name: Commit flake.nix update
|
||||||
|
env:
|
||||||
|
VERSION: ${{ steps.bump.outputs.version }}
|
||||||
|
run: |
|
||||||
|
git add flake.nix
|
||||||
|
if git diff --cached --quiet; then
|
||||||
|
echo "No changes to flake.nix"
|
||||||
|
else
|
||||||
|
git commit -m "chore: update flake.nix hashes for v${VERSION}"
|
||||||
|
git push
|
||||||
|
fi
|
||||||
|
|||||||
@@ -128,3 +128,6 @@ dist
|
|||||||
.yarn/build-state.yml
|
.yarn/build-state.yml
|
||||||
.yarn/install-state.gz
|
.yarn/install-state.gz
|
||||||
.pnp.*
|
.pnp.*
|
||||||
|
|
||||||
|
# Nix build output
|
||||||
|
result
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# Maintainer: Selimaj Dev <https://github.com/selimaj-dev>
|
||||||
|
# Contributor: Radu Ursache <https://github.com/rursache>
|
||||||
|
|
||||||
|
pkgname=linear-linux-bin
|
||||||
|
pkgver=0.2.5
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Unofficial Electron-based Linux desktop client for Linear (linear.app)"
|
||||||
|
arch=('x86_64' 'aarch64')
|
||||||
|
url="https://github.com/selimaj-dev/linear-linux"
|
||||||
|
license=('Apache-2.0')
|
||||||
|
depends=('gtk3' 'nss' 'alsa-lib')
|
||||||
|
provides=('linear-linux')
|
||||||
|
conflicts=('linear-linux')
|
||||||
|
options=('!strip' '!debug')
|
||||||
|
|
||||||
|
_appimage_x86_64="linear-linux-${pkgver}-x86_64.AppImage"
|
||||||
|
_appimage_aarch64="linear-linux-${pkgver}-arm64.AppImage"
|
||||||
|
|
||||||
|
source_x86_64=("${_appimage_x86_64}::${url}/releases/download/v${pkgver}/${_appimage_x86_64}")
|
||||||
|
source_aarch64=("${_appimage_aarch64}::${url}/releases/download/v${pkgver}/${_appimage_aarch64}")
|
||||||
|
|
||||||
|
sha256sums_x86_64=('34199f5f2ae6b4171c38b2f3062c1b902c80f081b1b58f804088005717eb6a79')
|
||||||
|
sha256sums_aarch64=('9cd0e8edcab4e5ab34aa811b775524386facf0fcc56719e8bdca8bb20d754655')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
if [[ "${CARCH}" == "x86_64" ]]; then
|
||||||
|
_appimage="${_appimage_x86_64}"
|
||||||
|
else
|
||||||
|
_appimage="${_appimage_aarch64}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod +x "${_appimage}"
|
||||||
|
"./${_appimage}" --appimage-extract >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "${srcdir}/squashfs-root"
|
||||||
|
|
||||||
|
# Install the full app to /opt
|
||||||
|
install -d "${pkgdir}/opt/linear-linux"
|
||||||
|
cp -a . "${pkgdir}/opt/linear-linux/"
|
||||||
|
|
||||||
|
# Fix permissions
|
||||||
|
find "${pkgdir}/opt/linear-linux" -type d -exec chmod 755 {} +
|
||||||
|
find "${pkgdir}/opt/linear-linux" -type f -exec chmod 644 {} +
|
||||||
|
chmod 755 "${pkgdir}/opt/linear-linux/linear-linux"
|
||||||
|
chmod 755 "${pkgdir}/opt/linear-linux/chrome-sandbox"
|
||||||
|
chmod 4755 "${pkgdir}/opt/linear-linux/chrome-sandbox"
|
||||||
|
|
||||||
|
# Install icons
|
||||||
|
install -Dm644 usr/share/icons/hicolor/1024x1024/apps/linear-linux.png \
|
||||||
|
"${pkgdir}/usr/share/icons/hicolor/1024x1024/apps/linear-linux.png"
|
||||||
|
install -Dm644 resources/assets/linear-icon.svg \
|
||||||
|
"${pkgdir}/usr/share/icons/hicolor/scalable/apps/linear-linux.svg"
|
||||||
|
|
||||||
|
# Install .desktop file
|
||||||
|
install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/linear-linux.desktop" <<EOF
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=Linear
|
||||||
|
Comment=Linux support for linear.app
|
||||||
|
Exec=linear-linux %U
|
||||||
|
Icon=linear-linux
|
||||||
|
Terminal=false
|
||||||
|
Categories=Office;ProjectManagement;
|
||||||
|
StartupWMClass=Linear
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Install launcher symlink
|
||||||
|
install -d "${pkgdir}/usr/bin"
|
||||||
|
ln -s /opt/linear-linux/linear-linux "${pkgdir}/usr/bin/linear-linux"
|
||||||
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
## ⚠️ ARCHIVED: PLEASE USE OTHER FORKS
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img alt="GH-rel ver" src="icon.png" width="100px">
|
<img alt="GH-rel ver" src="icon.png" width="100px">
|
||||||
<h1 align="center">Linear for linux</h1>
|
<h1 align="center">Linear for linux</h1>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 639 KiB After Width: | Height: | Size: 637 KiB |
Generated
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1775036866,
|
||||||
|
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
description = "Unofficial Linux desktop client for Linear (linear.app)";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs }:
|
||||||
|
let
|
||||||
|
version = "0.2.5";
|
||||||
|
|
||||||
|
sources = {
|
||||||
|
x86_64-linux = {
|
||||||
|
url = "https://github.com/kleo-dev/linear-linux/releases/download/v${version}/linear-linux-${version}-x86_64.AppImage";
|
||||||
|
hash = "sha256-NBmfXyrmtBccOLLzBiwbkCyA8IGxtY+AQIgAVxfrank="; # x86_64
|
||||||
|
};
|
||||||
|
aarch64-linux = {
|
||||||
|
url = "https://github.com/kleo-dev/linear-linux/releases/download/v${version}/linear-linux-${version}-arm64.AppImage";
|
||||||
|
hash = "sha256-nNDo7cq05as0qoEbd1UkOG+s8PzFZxnovcqLsg11RlU="; # aarch64
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = forAllSystems (system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = sources.${system}.url;
|
||||||
|
hash = sources.${system}.hash;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
linear-linux = pkgs.appimageTools.wrapType2 {
|
||||||
|
pname = "linear-linux";
|
||||||
|
inherit version src;
|
||||||
|
|
||||||
|
extraInstallCommands =
|
||||||
|
let
|
||||||
|
appimageContents = pkgs.appimageTools.extractType2 {
|
||||||
|
pname = "linear-linux";
|
||||||
|
inherit version src;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
''
|
||||||
|
# Install desktop file
|
||||||
|
install -Dm644 ${appimageContents}/linear-linux.desktop \
|
||||||
|
$out/share/applications/linear-linux.desktop
|
||||||
|
substituteInPlace $out/share/applications/linear-linux.desktop \
|
||||||
|
--replace-warn 'Exec=AppRun' 'Exec=linear-linux'
|
||||||
|
|
||||||
|
# Install icons
|
||||||
|
install -Dm644 ${appimageContents}/usr/share/icons/hicolor/1024x1024/apps/linear-linux.png \
|
||||||
|
$out/share/icons/hicolor/1024x1024/apps/linear-linux.png
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "Unofficial Linux desktop client for Linear (linear.app)";
|
||||||
|
homepage = "https://github.com/kleo-dev/linear-linux";
|
||||||
|
license = licenses.isc;
|
||||||
|
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
mainProgram = "linear-linux";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
default = self.packages.${system}.linear-linux;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 701 KiB After Width: | Height: | Size: 1.9 MiB |
@@ -1,4 +1,4 @@
|
|||||||
const { app, BrowserWindow, session, globalShortcut } = require('electron');
|
const { app, BrowserWindow, session, globalShortcut, shell } = require('electron');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
@@ -68,6 +68,14 @@ const createWindow = () => {
|
|||||||
win.setMenu(null);
|
win.setMenu(null);
|
||||||
win.loadURL('https://linear.app/login');
|
win.loadURL('https://linear.app/login');
|
||||||
|
|
||||||
|
const authPatterns = ['/oauth', '/auth', '/login', '/signin', '/sso', '/saml', '/callback'];
|
||||||
|
win.webContents.setWindowOpenHandler(({ url }) => {
|
||||||
|
const isAuth = authPatterns.some(p => url.includes(p));
|
||||||
|
if (isAuth) return { action: 'allow' };
|
||||||
|
shell.openExternal(url);
|
||||||
|
return { action: 'deny' };
|
||||||
|
});
|
||||||
|
|
||||||
win.on('close', () => {
|
win.on('close', () => {
|
||||||
saveWindowState(win.getBounds());
|
saveWindowState(win.getBounds());
|
||||||
});
|
});
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ ARCH=$(uname -m)
|
|||||||
|
|
||||||
# Normalize to electron-builder naming
|
# Normalize to electron-builder naming
|
||||||
case "$ARCH" in
|
case "$ARCH" in
|
||||||
x86_64) ARCH="x64" ;;
|
x86_64) ARCH="x86_64" ;;
|
||||||
aarch64 | arm64) ARCH="arm64" ;;
|
aarch64 | arm64) ARCH="arm64" ;;
|
||||||
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
|
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user