/ linuxy / snap / snapcraft.yaml
Swadhin Biswas chore(release): bump version to 2.0.4 (#47) · 8/28/2026
fc705d2
120 lines · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
name: linuxy
version: "2.0.4"
summary: One-click Linux Application Manager
description: |
  Linuxy is a modern Linux application manager with one-click installation,
  Firejail sandboxing, optional delta updates, and secure desktop integration.

  Features:
  - Drag-and-drop installation for AppImage, DEB, and RPM packages
  - Firejail sandboxing toggle per application
  - Built-in AppImageHub discovery
  - Automatic update checking
  - Dark/light theme with system-follow
  - Storage management and cleanup

grade: stable
confinement: strict
base: core22
compression: lzo

parts:
  linuxy:
    plugin: nil
    source: .
    override-build: |
      # Install Node.js and npm
      apt-get update
      apt-get install -y nodejs npm

      # Install frontend dependencies and build
      cd $CRAFT_PART_SRC
      npm install
      npm run build

      # Install Rust build dependencies
      apt-get install -y \
        build-essential \
        pkg-config \
        libgtk-3-dev \
        libwebkit2gtk-4.1-dev \
        libappindicator3-dev \
        librsvg2-dev \
        libssl-dev

      # Build the Tauri app
      cd $CRAFT_PART_SRC/src-tauri
      cargo build --release

      # Install binary
      mkdir -p $CRAFT_PART_INSTALL/bin
      cp target/release/linuxy $CRAFT_PART_INSTALL/bin/

      # Install desktop file
      mkdir -p $CRAFT_PART_INSTALL/share/applications
      cp $CRAFT_PART_SRC/snap/linuxy.desktop $CRAFT_PART_INSTALL/share/applications/

      # Install icons
      mkdir -p $CRAFT_PART_INSTALL/share/icons/hicolor/128x128/apps
      cp $CRAFT_PART_SRC/src-tauri/icons/128x128.png $CRAFT_PART_INSTALL/share/icons/hicolor/128x128/apps/linuxy.png

    build-packages:
      - curl
      - build-essential
      - pkg-config
      - libgtk-3-dev
      - libwebkit2gtk-4.1-dev
      - libappindicator3-dev
      - librsvg2-dev
      - libssl-dev
      - nodejs
      - npm
      - cargo
      - rustc

plugs:
  # Desktop integration
  desktop:
  desktop-legacy:
  wayland:
  x11:
  unity7:

  # File access
  home:
  removable-media:

  # Network access for downloads and updates
  network:
  network-bind:

  # System integration
  mount-observe:
  process-control:
  hardware-observe:

  # For firejail sandboxing (optional)
  system-observe:

apps:
  linuxy:
    command: bin/linuxy
    extensions: [gnome]
    plugs:
      - desktop
      - desktop-legacy
      - wayland
      - x11
      - unity7
      - home
      - removable-media
      - network
      - network-bind
      - mount-observe
      - process-control
      - hardware-observe
      - system-observe
    environment:
      GTK_USE_PORTAL: "1"
      NO_AT_BRIDGE: "1"