├── .build
├── .editorconfig
├── .github
├── FUNDING.yml
└── workflows
│ ├── main.yml
│ └── release-check.yml
├── .gitignore
├── LICENSE.md
├── README.md
├── screenshot.png
└── snap
├── local
└── src
│ ├── dl_npp
│ ├── notepad-plus-plus.png
│ └── pre-install
└── snapcraft.yaml
/.build:
--------------------------------------------------------------------------------
1 |
2 | 2021-09-12 06:12:20+00:00 Version 8.1.4
3 | 2021-09-27 12:26:37+00:00 Version 8.1.5
4 | 2021-10-14 00:53:00+00:00 Version 8.1.6
5 | 2021-10-15 12:25:13+00:00 Version 8.1.7
6 | 2021-10-20 00:56:51+00:00 Version 8.1.8
7 | 2021-10-22 01:00:57+00:00 Version 8.1.9
8 | 2021-11-14 00:55:12+00:00 Version 8.1.9.1
9 | 2021-11-22 00:54:37+00:00 Version 8.1.9.2
10 | 2021-12-09 00:55:45+00:00 Version 8.1.9.3
11 | 2022-01-01 00:59:43+00:00 Version 8.2
12 | 2022-01-25 01:02:07+00:00 Version 8.2.1
13 | 2022-02-04 00:55:34+00:00 Version 8.3
14 | 2022-02-16 01:01:26+00:00 Version 8.3.1
15 | 2022-02-28 01:04:05+00:00 Version 8.3.2
16 | 2022-03-15 01:10:07+00:00 Version 8.3.3
17 | 2022-04-26 01:41:56+00:00 Version 8.4
18 | 2022-05-09 12:33:25+00:00 Version 8.3.2
19 | 2022-05-11 12:38:03+00:00 Version 8.4
20 | 2022-05-12 01:43:40+00:00 Version 8.4.1
21 | 2022-06-04 01:21:42+00:00 Version 8.4.2
22 | 2022-07-08 12:35:02+00:00 Version 8.4.3
23 | 2022-07-16 01:48:48+00:00 Version 8.4.4
24 | 2022-09-07 12:38:45+00:00 Version 8.4.5
25 | 2022-09-29 02:09:41+00:00 Version 8.4.6
26 | 2022-11-09 01:53:17+00:00 Version 8.4.7
27 | 2022-12-25 12:26:28+00:00 Version 8.4.8
28 | 2023-01-31 12:29:34+00:00 Version 8.4.9
29 | 2023-03-06 12:32:19+00:00 Version 8.5
30 | 2023-03-24 01:12:25+00:00 Version 8.5.1
31 | 2023-04-06 12:27:09+00:00 Version 8.5.2
32 | 2023-05-15 12:29:06+00:00 Version 8.5.3
33 | 2023-06-19 01:20:28+00:00 Version 8.5.4
34 | 2023-08-10 01:12:42+00:00 Version 8.5.5
35 | 2023-08-16 00:58:27+00:00 Version 8.5.6
36 | 2023-09-08 00:59:43+00:00 Version 8.5.7
37 | 2023-10-18 01:01:44+00:00 Version 8.5.8
38 | 2023-11-24 01:02:56+00:00 Version 8.6
39 | 2024-01-06 01:03:43+00:00 Version 8.6.1
40 | 2024-01-15 01:08:17+00:00 Version 8.6.2
41 | 2024-02-19 01:02:14+00:00 Version 8.6.3
42 | 2024-02-20 01:00:00+00:00 Version 8.6.4
43 | 2024-03-30 00:59:37+00:00 Version 8.6.5
44 | 2024-05-10 12:26:46+00:00 Version 8.6.6
45 | 2024-05-13 01:07:19+00:00 Version 8.6.7
46 | 2024-06-04 12:28:58+00:00 Version 8.6.8
47 | 2024-07-14 12:36:03+00:00 Version 8.6.9
48 | 2024-09-18 01:17:12+00:00 Version 8.7
49 | 2024-11-05 01:19:33+00:00 Version 8.7.1
50 | 2024-11-27 12:37:53+00:00 Version 8.7.2
51 | 2024-12-02 01:37:42+00:00 Version 8.7.3
52 | 2024-12-05 12:38:07+00:00 Version 8.7.4
53 | 2024-12-25 12:33:44+00:00 Version 8.7.5
54 | 2025-01-28 12:34:05+00:00 Version 8.7.6
55 | 2025-02-08 01:18:21+00:00 Version 8.7.7
56 | 2025-03-08 12:26:53+00:00 Version 8.7.8
57 | 2025-04-03 01:27:03+00:00 Version 8.7.9
58 | 2025-04-29 01:39:40+00:00 Version 8.8
59 | 2025-05-05 12:39:59+00:00 Version 8.8.1
60 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 4
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = false
9 | insert_final_newline = false
10 |
11 | [*.yaml]
12 | indent_style = space
13 | indent_size = 2
14 | end_of_line = lf
15 | charset = utf-8
16 | trim_trailing_whitespace = true
17 | insert_final_newline = true
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: mmtrt # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: stable
4 |
5 | # Controls when the workflow will run
6 | on:
7 | # Triggers the workflow on push or pull request events but only for the master branch
8 | push:
9 | branches: [ master ]
10 | pull_request:
11 | branches: [ master ]
12 |
13 | # Allows you to run this workflow manually from the Actions tab
14 | workflow_dispatch:
15 |
16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
17 | jobs:
18 | # This workflow contains a single job called "build"
19 | build:
20 | # The type of runner that the job will run on
21 | runs-on: ubuntu-latest
22 |
23 | # Steps represent a sequence of tasks that will be executed as part of the job
24 | steps:
25 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
26 | - uses: actions/checkout@v4
27 | - uses: snapcore/action-build@v1
28 | id: build
29 |
30 | - uses: snapcore/action-publish@v1
31 | env:
32 | SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
33 | with:
34 | snap: ${{ steps.build.outputs.snap }}
35 | release: edge
36 |
--------------------------------------------------------------------------------
/.github/workflows/release-check.yml:
--------------------------------------------------------------------------------
1 | name: check
2 |
3 | on:
4 | schedule:
5 | - cron: "0 */12 * * *"
6 |
7 | jobs:
8 | new-release:
9 | runs-on: ubuntu-latest
10 |
11 | steps:
12 | - uses: actions/checkout@v4
13 | with:
14 | token: ${{ secrets.PAT }}
15 | - name: get-latest-version
16 | run: |
17 | VERSION="$(wget 2>/dev/null https://github.com/notepad-plus-plus/notepad-plus-plus/releases -qSO- | grep -Eo ".*.x6" | head -1 | grep -Po "(\d+\.)+\d+")"
18 | VERSION_CHECK="$(echo $VERSION | wc -l)"
19 | last=$(tail -n1 .build | awk '{print $4}')
20 | if [ "$VERSION_CHECK" -eq 1 ]; then
21 | if [ "$last" != "$VERSION" ]; then
22 | echo "$(date -u --rfc-3339=seconds) Version $VERSION" >> .build
23 | fi
24 | else
25 | echo "No update released."
26 | fi
27 | - uses: stefanzweifel/git-auto-commit-action@v4
28 | with:
29 | commit_message: Trigger build for new version
30 | branch: master
31 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #snapcraft specifics
2 | parts
3 | stage
4 | prime
5 | *.snap
6 | .snapcraft
7 | __pycache__
8 | *.pyc
9 | squashfs-root/
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Snapcrafters
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | notepad-plus-plus
5 |
6 |
7 | This is the snap for notepad-plus-plus, "notepad-plus-plus is a free source code editor. [wine-i386 packed snap]". It works on Ubuntu, Fedora, Debian, and other major Linux
8 | distributions.
9 |
10 |
15 |
16 | ## Install
17 |
18 | sudo snap install notepad-plus-plus
19 | sudo snap connect notepad-plus-plus:removable-media
20 | sudo snap connect notepad-plus-plus:cups-control
21 |
22 | ([Don't have snapd installed?](https://snapcraft.io/docs/core/install))
23 |
24 | 
25 |
26 | Published for
with :gift_heart: by Snapcrafters
27 |
28 | ## Remaining tasks
29 |
30 | Snapcrafters ([join us](https://forum.snapcraft.io/t/join-snapcrafters/1325))
31 | are working to land snap install documentation and
32 | the [snapcraft.yaml](https://github.com/snapcrafters/fork-and-rename-me/blob/master/snap/snapcraft.yaml)
33 | upstream so [Project] can authoritatively publish future releases.
34 |
35 | - [x] Fork the [Snapcrafters template](https://github.com/snapcrafters/fork-and-rename-me) repository to your own GitHub account.
36 | - If you have already forked the Snapcrafter template to your account and want to create another snap, you'll need to use GitHub's [Import repository](https://github.com/new/import) feature because you can only fork a repository once.
37 | - [x] Rename the forked Snapcrafters template repository
38 | - [x] Update the description of the repository
39 | - [x] Update logos and references to `[Project]` and `[my-snap-name]`
40 | - [x] Create a snap that runs in `devmode`
41 | - [x] Register the snap in the store, **using the preferred upstream name**
42 | - [x] Add a screenshot to this `README.md`
43 | - [x] Publish the `devmode` snap in the Snap store edge channel
44 | - [x] Add install instructions to this `README.md`
45 | - [x] Update snap store metadata, icons and screenshots
46 | - [x] Convert the snap to `strict` confinement, or `classic` confinement if it qualifies
47 | - [x] Publish the confined snap in the Snap store beta channel
48 | - [x] Update the install instructions in this `README.md`
49 | - [x] Post a call for testing on the [Snapcraft Forum](https://forum.snapcraft.io) - [link](https://forum.snapcraft.io/t/call-for-testing-notepad-plus-plus/4498)
50 | - [ ] Ask a [Snapcrafters admin](https://github.com/orgs/snapcrafters/people?query=%20role%3Aowner) to fork your repo into github.com/snapcrafters, transfer the snap name from you to snapcrafters, and configure the repo for automatic publishing into edge on commit
51 | - [ ] Add the provided Snapcraft build badge to this `README.md`
52 | - [x] Publish the snap in the Snap store stable channel
53 | - [x] Update the install instructions in this `README.md`
54 | - [ ] Post an announcement in the [Snapcraft Forum](https://forum.snapcraft.io) - [link]()
55 | - [ ] Submit a pull request or patch upstream that adds snap install documentation - [link]()
56 | - [ ] Submit a pull request or patch upstream that adds the `snapcraft.yaml` and any required assets/launchers - [link]()
57 | - [ ] Add upstream contact information to the `README.md`
58 | - If upstream accept the PR:
59 | - [ ] Request upstream create a Snap store account
60 | - [ ] Contact the Snap Advocacy team to request the snap be transferred to upstream
61 | - [ ] Ask the Snap Advocacy team to celebrate the snap - [link]()
62 |
63 | If you have any questions, [post in the Snapcraft forum](https://forum.snapcraft.io).
64 |
65 |
72 |
73 |
80 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mmtrt/notepad-plus-plus-snap/e5698677d5d8daae94c324383506f7e467bc72d0/screenshot.png
--------------------------------------------------------------------------------
/snap/local/src/dl_npp:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # Author:
4 | # mmtrt [Taqi Raza]
5 | #
6 | # Description:
7 | # download and prepare notepad-plus-plus for snap
8 | #
9 | # Date: Feb 11 2018
10 | #
11 |
12 | dlnpp () {
13 | ver=$(wget https://github.com/notepad-plus-plus/notepad-plus-plus/releases -qO - 2>&1 | grep -Eo ".*.x6" | grep npp | grep -Po "(\d+\.)+\d+" | head -n1)
14 | if [ "${ARCHITECTURE}" = "amd64" ]; then
15 | wget https://github.com/$(wget -qO- https://github.com/notepad-plus-plus/notepad-plus-plus/releases | grep "/.*x64.exe" | cut -d '"' -f2 | head -1) &> /dev/null
16 | ./7zz x -aos "npp.$ver.Installer.x64.exe" -x'!change.log' -x'!doLocalConf.xml' -x'!LICENSE' -x'!NppShell_06.dll' -x'!readme.txt' -x'!userDefinedLang-markdown.default.modern.xml' -o"usr/share/notepad-plus-plus"
17 | else
18 | echo "ERROR! notepad-plus-plus not found for amd64. Failing the build here."
19 | exit 1
20 | fi
21 | }
22 |
23 | dli7z16 () {
24 | ARCHITECTURE=$(dpkg --print-architecture)
25 | if [ "${ARCHITECTURE}" = "amd64" ]; then
26 | wget -qO- https://www.7-zip.org/a/$(wget -qO- https://www.7-zip.org | grep -Eo -m2 '7z.*.exe"' | tail -1 | sed 's/.exe"/-linux-x64.tar.xz/') | tar -J -xvf - 7zz
27 | else
28 | echo "ERROR! No amd64 system found. Failing the build here."
29 | exit 1
30 | fi
31 | }
32 |
33 | mknpp () {
34 | appdir="usr/share/notepad-plus-plus"
35 | mkdir ./{wine-runtime,wine-platform,bin} && mkdir -p sommelier/hooks && mkdir -p usr/share/{pixmaps,applications} && mkdir -p "winedata/Application Data/Notepad++" && mkdir -p "usr/share/notepad-plus-plus/plugins/Config"
36 | mv $appdir/notepad++.exe $appdir/notepad-plus-plus.exe
37 | cp -R $appdir/'$_14_'/* "winedata/Application Data/Notepad++";cp -R $appdir/'$_15_'/* "usr/share/notepad-plus-plus/plugins";cp -R $appdir/'$_17_'/* "usr/share/notepad-plus-plus/plugins/Config"
38 | find $appdir/'$PLUGINSDIR' -type f -name '*.xml' -print0 | while read -d $'\0' file; do cp -v "$file" $appdir/localization/ &>/dev/null; done
39 | rm -R $appdir/'$_14_';rm -R $appdir/'$_15_';rm -R $appdir/'$_17_';rm -R $appdir/'$PLUGINSDIR';
40 | find "usr" -type d -execdir chmod 755 {} + && find "winedata" -type d -execdir chmod 755 "{}" +
41 | }
42 |
43 | mkdsk () {
44 | cat > notepad-plus-plus.desktop <<'EOF1'
45 | [Desktop Entry]
46 | Name=Notepad++
47 | GenericName=Text Editor
48 | Comment=Simple and free source code editor.
49 | Encoding=UTF-8
50 | Version=
51 | Type=Application
52 | Terminal=false
53 | Icon=${SNAP}/usr/share/pixmaps/notepad-plus-plus.png
54 | Exec=notepad-plus-plus %F
55 | StartupWMClass=notepad-plus-plus.exe
56 | Categories=Utility;TextEditor
57 | MimeType=text/plain;text/css;text/html;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-java;text/x-makefile;text/x-python;text/x-sh;application/x-wine-extension-ini;application/x-wine-extension-inf;
58 | EOF1
59 | sed -i -e 's|Version=|Version='"$ver"'|g' notepad-plus-plus.desktop
60 | }
61 |
62 | dli7z16
63 | dlnpp
64 | mknpp
65 | mkdsk
66 | mv pre-install sommelier/hooks && mv notepad-plus-plus.desktop usr/share/applications && mv notepad-plus-plus.png usr/share/pixmaps && cp -R -p {sommelier,bin,usr,wine-runtime,wine-platform,winedata} $CRAFT_PART_INSTALL
67 |
--------------------------------------------------------------------------------
/snap/local/src/notepad-plus-plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mmtrt/notepad-plus-plus-snap/e5698677d5d8daae94c324383506f7e467bc72d0/snap/local/src/notepad-plus-plus.png
--------------------------------------------------------------------------------
/snap/local/src/pre-install:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | progName=notepad-plus-plus
4 | progRealPath=$SNAP/usr/share/$progName
5 | progHome=$SNAP_USER_DATA/$progName
6 |
7 | if [ ! -d $progHome ];then
8 | ensure_dir_exists $progHome
9 | fi
10 |
11 | # Delete broken symlinks
12 | find "$progHome/" -type l -delete &>/dev/null
13 | # Update existing symlinks, add new symlinks
14 | cp -urs "$progRealPath/"* "$progHome" &>/dev/null
15 |
16 | # copy npp appdata to WINEPREFIX
17 | ensure_dir_exists $WINEPREFIX/drive_c/users/$USER
18 | cp -R "$SNAP/winedata/Application Data" $WINEPREFIX/drive_c/users/$USER
19 |
20 | # Remove xml file links & copy xml files
21 | rm $progHome/updater/gup.xml &>/dev/null
22 | cp $progRealPath/updater/gup.xml $progHome/updater &>/dev/null
23 |
24 | for xmls in $(ls $progRealPath/ | grep xml); do
25 | rm $progHome/$xmls &>/dev/null
26 | cp $progRealPath/$xmls $progHome/ &>/dev/null
27 | done
28 |
--------------------------------------------------------------------------------
/snap/snapcraft.yaml:
--------------------------------------------------------------------------------
1 | name: notepad-plus-plus
2 | title: Notepad++ (WINE)
3 | summary: notepad-plus-plus is a free source code editor.
4 | description: |
5 | Based on the powerful editing component Scintilla, notepad-plus-plus is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, notepad-plus-plus is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment.
6 | adopt-info: notepad-plus-plus
7 |
8 | confinement: strict
9 | grade: stable
10 | architectures:
11 | - build-on: amd64
12 | base: core22
13 |
14 | plugs:
15 | shmem:
16 | interface: shared-memory
17 | private: true
18 | wine-runtime-c22:
19 | interface: content
20 | target: $SNAP/wine-runtime
21 | default-provider: wine-platform-runtime-core22
22 | wine-9-devel:
23 | interface: content
24 | target: $SNAP/wine-platform
25 | default-provider: wine-platform-9-devel-core22
26 |
27 | environment:
28 | WINEDLLOVERRIDES: "mscoree,mshtml=" # Prevent pop-ups about Wine Mono and Wine Gecko
29 | RUN_EXE: "$SNAP_USER_DATA/notepad-plus-plus/notepad-plus-plus.exe"
30 | SOMMELIER_KEEP_CWD: "1" # Don't change the working directory so relative paths still work
31 | NO_AT_BRIDGE: "1" # Fix yad error Failed to connect to socket /tmp/dbus-xxx: No such file or directory
32 | DISABLE_WAYLAND: "1" # Fix gtk decoration under wayland session
33 | SYSTEM_WGETRC: $SNAP/wine-runtime/etc/wgetrc
34 | SOMMELIER_NO_THEME: 1
35 |
36 | apps:
37 | notepad-plus-plus:
38 | extensions: [gnome]
39 | command: bin/sommelier run-exe
40 | plugs:
41 | - shmem
42 | - home
43 | - network
44 | - cups-control
45 | - removable-media
46 | desktop: usr/share/applications/notepad-plus-plus.desktop
47 | # The wine command can be used to run applications inside the wine
48 | # environment that this snap uses.
49 | #
50 | # For example, users can configure the wine environment of this snap
51 | # by running `myapp.wine winecfg`.
52 | wine:
53 | extensions: [gnome]
54 | command: bin/sommelier
55 | plugs:
56 | - shmem
57 | - home
58 | - network
59 | - cups-control
60 | - removable-media
61 | # The winetricks command can be used to run winetricks inside the wine
62 | # environment that this snap uses.
63 | winetricks:
64 | extensions: [gnome]
65 | command: bin/sommelier winetricks
66 | plugs:
67 | - network
68 |
69 | parts:
70 | notepad-plus-plus:
71 | plugin: nil
72 | source: ./snap/local/src
73 | override-build: |
74 | craftctl default
75 | set -ex
76 | ver=$(wget https://github.com/notepad-plus-plus/notepad-plus-plus/releases -qO - 2>&1 | grep -Eo ".*.x6" | grep npp | grep -Po "(\d+\.)+\d+" | head -n1)
77 | snapcraftctl set-version "$ver"
78 | ./dl_npp
79 | stage:
80 | - bin
81 | - usr
82 | - wine-platform
83 | - wine-runtime
84 | - winedata
85 | - sommelier
86 | build-packages: [wget]
87 | # The sommelier script helps you snap Windows applications using Wine. It
88 | # initializes and configures Wine and installs the Windows application.
89 | sommelier:
90 | plugin: make
91 | source: https://github.com/mmtrt/sommelier-core.git
92 | source-branch: "core22"
93 | build-packages:
94 | - libc6-dev-i386
95 | - gcc-multilib
96 |
--------------------------------------------------------------------------------