├── .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 | Project 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 | ![notepad-plus-plus](screenshot.png?raw=true "notepad-plus-plus") 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 | --------------------------------------------------------------------------------