diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 179 |
1 files changed, 153 insertions, 26 deletions
@@ -1,63 +1,190 @@ | |||
1 | <img src="./build-helpers/images/icon.png" alt="" width="150"/> | 1 | <p align="center"> |
2 | <img src="./build-helpers/images/icon.png" alt="" width="200"/> | ||
3 | </p> | ||
2 | 4 | ||
3 | # Franz 5 | 5 | # Ferdi |
4 | [![Build status Windows](https://ci.appveyor.com/api/projects/status/9yman4ye19x4274o/branch/master?svg=true)](https://ci.appveyor.com/project/adlk/franz/branch/master) | ||
5 | [![Build Status Mac & Linux](https://travis-ci.com/meetfranz/franz.svg?branch=master)](https://travis-ci.com/meetfranz/franz) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://meetfranz.com/payment.html) | ||
6 | 6 | ||
7 | Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more. | 7 | [![Backers on Open Collective](https://opencollective.com/getferdi/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/getferdi/sponsors/badge.svg)](#sponsors) [![Build Status Windows](https://ci.appveyor.com/api/projects/status/2ckfbmoxp36fye5b?svg=true)](https://ci.appveyor.com/project/kytwb/ferdi) |
8 | [![Build Status Mac & Linux](https://travis-ci.org/getferdi/ferdi.svg?branch=master)](https://travis-ci.org/getferdi/ferdi) | ||
8 | 9 | ||
9 | ## [Download Franz](https://www.meetfranz.com) | 10 | π€΄π½ Hard-fork of [Franz](https://github.com/meetfranz/franz), adding awesome features and removing unwanted ones. |
10 | π www.meetfranz.com | 11 | |
12 | ## Download Ferdi | ||
13 | |||
14 | You can find the installers in the [latest release](https://github.com/getferdi/ferdi/releases) assets. | ||
11 | 15 | ||
12 | ### Or use homebrew (macOS only) | 16 | ### Or use homebrew (macOS only) |
13 | 17 | ||
14 | `$ brew cask install franz` | 18 | `$ brew cask install ferdi` |
15 | 19 | ||
16 | (Don't know homebrew? [brew.sh](https://brew.sh/)) | 20 | (Don't know homebrew? [brew.sh](https://brew.sh/)) |
17 | 21 | ||
22 | ## Ferdi-specific Features | ||
23 | |||
24 | - [x] Removes the counter-productive fullscreen app delay inviting users to upgrade | ||
25 | - [x] Removes pages begging you to donate after registration | ||
26 | - [x] Remove "Franz is better together" popup | ||
27 | - [x] Remove bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd)) | ||
28 | - [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15)) | ||
29 | - [x] Using the Ferdi API instead of Franz's servers | ||
30 | - [x] [Add option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server) | ||
31 | - [x] Add option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5)) | ||
32 | - [x] Add "Private Notification"-Mode, that hides message content from notifications ([franz#879](https://github.com/meetfranz/franz/issues/879)) | ||
33 | - [x] Add Password Lock feature to keep your messages protected ([#41](https://github.com/getferdi/ferdi/issues/41), [franz#810](https://github.com/meetfranz/franz/issues/810), [franz#950](https://github.com/meetfranz/franz/issues/950), [franz#1430](https://github.com/meetfranz/franz/issues/1430)) | ||
34 | - [x] Add an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37)) | ||
35 | - [x] Add universal Dark-Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71)) | ||
36 | - [x] Add an option to auto-hide the menubar ([#7](https://github.com/getferdi/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833)) | ||
37 | - [x] Add "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's [Quick Switcher](https://rambox.pro/#feature-details/quick_switcher)) | ||
38 | - [x] Add "Service Hibernation" that will automatically unload services when they are unused | ||
39 | - [x] Add "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's [Work Hours](https://rambox.pro/#feature-details/work_hours)) | ||
40 | - [x] Add CTRL+β and CTRL+β shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/getferdi/ferdi/issues/39)) | ||
41 | - [x] Add option to show a browser-like navigation bar on all services | ||
42 | - [x] Add option to change accent color | ||
43 | - [x] Add portable version for Windows | ||
44 | - [x] Add Process Manager to find services using a lot of resources | ||
45 | - [x] Add "npm run prepare-code" command for development to lint and beautify code | ||
46 | - [x] Add button to open darkmode.css for a service | ||
47 | - [x] Switch to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) ti improve application size | ||
48 | - [x] Improve "About Ferdi" screen to better display versions | ||
49 | - [x] Minifying build files to improve app size | ||
50 | - [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/getferdi/ferdi/wiki/Custom-Todo) | ||
51 | - [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/getferdi/ferdi/issues/6)) | ||
52 | - [x] Comes with a custom branding proper to Ferdi | ||
53 | |||
18 | ## Development | 54 | ## Development |
19 | 55 | ||
20 | ### Preparations | 56 | ### Preparations |
21 | 57 | ||
22 | #### Install Linux OS dependencies | 58 | #### Install OS dependencies |
23 | [Guide: Linux distribution specific dependencies](docs/linux.md) | 59 | |
60 | ##### Node.js | ||
61 | |||
62 | Please make sure you are running NodeJS v10 ([v10.16.3](https://nodejs.org/dist/v10.16.3/) suggested). Versions above will throw an errow when trying to install due to an [old fsevent dependency](https://github.com/fsevents/fsevents/issues/278). | ||
63 | |||
64 | ##### Git | ||
65 | |||
66 | The version [2.23.0](https://github.com/git-for-windows/git/releases/tag/v2.23.0.windows.1) for Git is working fine for development. You can then use the console from Git to do the development procedure. | ||
67 | |||
68 | ##### Debian/Ubuntu | ||
24 | 69 | ||
25 | #### Fix native modules to match current electron node version | ||
26 | ```bash | 70 | ```bash |
27 | $ npm run rebuild | 71 | $ apt install libx11-dev libxext-dev libxss-dev libxkbfile-dev |
72 | ``` | ||
73 | |||
74 | ##### Fedora | ||
75 | |||
76 | ```bash | ||
77 | $ dnf install libX11-devel libXext-devel libXScrnSaver-devel libxkbfile-devel | ||
78 | ``` | ||
79 | |||
80 | ##### Windows | ||
81 | |||
82 | ```bash | ||
83 | $ npm install --global windows-build-tools // Windows 10 | ||
84 | $ npm install --global windows-build-tools --vs2015 // Windows 7 | ||
28 | ``` | 85 | ``` |
29 | 86 | ||
87 | #### Clone repository with submodule | ||
88 | |||
89 | ```bash | ||
90 | $ git clone https://github.com/getferdi/ferdi.git | ||
91 | $ cd ferdi | ||
92 | $ git submodule update --init --recursive | ||
93 | ``` | ||
94 | |||
95 | It is important you execute the last command to get the required submodules (recipes, server). | ||
96 | |||
30 | ### Install dependencies | 97 | ### Install dependencies |
31 | Run the following command to install all dependencies, and link sibling modules with Franz. | 98 | |
99 | Run the following command to install all dependencies, and link sibling modules with Ferdi. | ||
100 | |||
32 | ```bash | 101 | ```bash |
33 | $ npx lerna bootstrap | 102 | $ npx lerna bootstrap |
34 | ``` | 103 | ``` |
35 | 104 | ||
36 | If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. | 105 | If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. |
37 | 106 | ||
38 | ### Run Franz Development App | 107 | ### Fix native modules to match current electron node version |
39 | Run these two commands __simultaneously__ in different console tabs. | 108 | |
109 | ```bash | ||
110 | $ npm run rebuild | ||
111 | ``` | ||
112 | |||
113 | ### Start development app | ||
114 | |||
115 | Run these two commands **simultaneously** in different console tabs: | ||
40 | 116 | ||
41 | ```bash | 117 | ```bash |
42 | $ npm run dev | 118 | $ npm run dev |
43 | $ npm run start | 119 | $ npm run start |
44 | ``` | 120 | ``` |
121 | |||
45 | Be aware that the development database will be reset regularly. | 122 | Be aware that the development database will be reset regularly. |
46 | 123 | ||
47 | ## Packaging | 124 | ### Packaging |
125 | |||
48 | ```bash | 126 | ```bash |
49 | $ npm run build | 127 | $ npm run build |
50 | ``` | 128 | ``` |
51 | 129 | ||
52 | ## How can I support the project? | 130 | Deliverables will be available in the `out` folder. |
53 | If you have found a bug that hasn't been reported yet or want to request a new feature, please open a new issue. | ||
54 | 131 | ||
55 | ## I need help? | 132 | ### Release |
56 | Join the Franz community on [Slack](http://slack.franz.im) and get in touch with us. | ||
57 | 133 | ||
58 | ## Create your own plugins/recipes | 134 | ```bash |
59 | You can find all the Information at the [Plugins repository](https://github.com/meetfranz/plugins). | 135 | $ git checkout develop && git pull && git checkout master |
60 | For questions feel free to ask in the [community Slack](http://slack.franz.im) | 136 | $ git merge --no-ff develop |
137 | $ git tag v5.3.4-beta.4 | ||
138 | $ git push --tags | ||
139 | ``` | ||
61 | 140 | ||
62 | ## License | 141 | When pushing a new tag, the CI builds will create a draft GitHub release and upload the deliverables in the draft release assets. Wait for all the assets to be uploaded before publishing the draft release. |
63 | Franz 5 is open-source licensed under the Apache-2.0 License. | 142 | |
143 | ## Contributors β¨ | ||
144 | |||
145 | Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): | ||
146 | |||
147 | <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> | ||
148 | <!-- prettier-ignore-start --> | ||
149 | <!-- markdownlint-disable --> | ||
150 | <table> | ||
151 | <tr> | ||
152 | <td align="center"><a href="https://vantezzen.io"><img src="https://avatars2.githubusercontent.com/u/10333196?v=4" width="40px;" alt="Bennett"/><br /><sub><b>Bennett</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=vantezzen" title="Code">π»</a> <a href="#design-vantezzen" title="Design">π¨</a> <a href="https://github.com/kytwb/ferdi/commits?author=vantezzen" title="Documentation">π</a> <a href="#ideas-vantezzen" title="Ideas, Planning, & Feedback">π€</a> <a href="#translation-vantezzen" title="Translation">π</a> <a href="#example-vantezzen" title="Examples">π‘</a> <a href="https://github.com/kytwb/ferdi/issues?q=author%3Avantezzen" title="Bug reports">π</a> <a href="#content-vantezzen" title="Content">π</a> <a href="#infra-vantezzen" title="Infrastructure (Hosting, Build-Tools, etc)">π</a> <a href="#userTesting-vantezzen" title="User Testing">π</a> <a href="#question-vantezzen" title="Answering Questions">π¬</a> <a href="#projectManagement-vantezzen" title="Project Management">π</a> <a href="#review-vantezzen" title="Reviewed Pull Requests">π</a></td> | ||
153 | <td align="center"><a href="http://www.adlk.io"><img src="https://avatars1.githubusercontent.com/u/3265004?v=4" width="40px;" alt="Stefan Malzner"/><br /><sub><b>Stefan Malzner</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=adlk" title="Code">π»</a> <a href="#content-adlk" title="Content">π</a> <a href="#design-adlk" title="Design">π¨</a> <a href="https://github.com/kytwb/ferdi/commits?author=adlk" title="Documentation">π</a> <a href="#ideas-adlk" title="Ideas, Planning, & Feedback">π€</a> <a href="#infra-adlk" title="Infrastructure (Hosting, Build-Tools, etc)">π</a> <a href="#projectManagement-adlk" title="Project Management">π</a> <a href="https://github.com/kytwb/ferdi/commits?author=adlk" title="Tests">β οΈ</a> <a href="#translation-adlk" title="Translation">π</a></td> | ||
154 | <td align="center"><a href="https://twitter.com/kytwb"><img src="https://avatars0.githubusercontent.com/u/412895?v=4" width="40px;" alt="Amine Mouafik"/><br /><sub><b>Amine Mouafik</b></sub></a><br /><a href="#question-kytwb" title="Answering Questions">π¬</a> <a href="https://github.com/kytwb/ferdi/commits?author=kytwb" title="Code">π»</a> <a href="https://github.com/kytwb/ferdi/commits?author=kytwb" title="Documentation">π</a> <a href="#ideas-kytwb" title="Ideas, Planning, & Feedback">π€</a> <a href="#maintenance-kytwb" title="Maintenance">π§</a> <a href="#platform-kytwb" title="Packaging/porting to new platform">π¦</a> <a href="#projectManagement-kytwb" title="Project Management">π</a> <a href="#review-kytwb" title="Reviewed Pull Requests">π</a> <a href="#infra-kytwb" title="Infrastructure (Hosting, Build-Tools, etc)">π</a> <a href="#fundingFinding-kytwb" title="Funding Finding">π</a></td> | ||
155 | <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="40px;" alt="ZeroCool"/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=ZeroCool940711" title="Code">π»</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">π€</a></td> | ||
156 | <td align="center"><a href="https://github.com/rseitbekov"><img src="https://avatars2.githubusercontent.com/u/35684439?v=4" width="40px;" alt="rseitbekov"/><br /><sub><b>rseitbekov</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=rseitbekov" title="Code">π»</a></td> | ||
157 | <td align="center"><a href="https://djangogigs.com/developers/peter-bittner/"><img src="https://avatars2.githubusercontent.com/u/665072?v=4" width="40px;" alt="Peter Bittner"/><br /><sub><b>Peter Bittner</b></sub></a><br /><a href="#ideas-bittner" title="Ideas, Planning, & Feedback">π€</a> <a href="https://github.com/kytwb/ferdi/issues?q=author%3Abittner" title="Bug reports">π</a></td> | ||
158 | </tr> | ||
159 | <tr> | ||
160 | <td align="center"><a href="https://github.com/justus-saul"><img src="https://avatars1.githubusercontent.com/u/5861826?v=4" width="40px;" alt="Justus Saul"/><br /><sub><b>Justus Saul</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3Ajustus-saul" title="Bug reports">π</a> <a href="#ideas-justus-saul" title="Ideas, Planning, & Feedback">π€</a></td> | ||
161 | <td align="center"><a href="https://github.com/igreil"><img src="https://avatars0.githubusercontent.com/u/17239151?v=4" width="40px;" alt="igreil"/><br /><sub><b>igreil</b></sub></a><br /><a href="#ideas-igreil" title="Ideas, Planning, & Feedback">π€</a></td> | ||
162 | <td align="center"><a href="http://marcolopes.eu"><img src="https://avatars1.githubusercontent.com/u/431889?v=4" width="40px;" alt="Marco Lopes"/><br /><sub><b>Marco Lopes</b></sub></a><br /><a href="#ideas-marcolopes" title="Ideas, Planning, & Feedback">π€</a></td> | ||
163 | <td align="center"><a href="https://github.com/dayzlun"><img src="https://avatars3.githubusercontent.com/u/17259690?v=4" width="40px;" alt="dayzlun"/><br /><sub><b>dayzlun</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3Adayzlun" title="Bug reports">π</a></td> | ||
164 | <td align="center"><a href="https://twitter.com/tobigue_"><img src="https://avatars2.githubusercontent.com/u/1560152?v=4" width="40px;" alt="Tobias GΓΌnther"/><br /><sub><b>Tobias GΓΌnther</b></sub></a><br /><a href="#ideas-tobigue" title="Ideas, Planning, & Feedback">π€</a></td> | ||
165 | <td align="center"><a href="https://github.com/AGCaesar"><img src="https://avatars3.githubusercontent.com/u/7844066?v=4" width="40px;" alt="AGCaesar"/><br /><sub><b>AGCaesar</b></sub></a><br /><a href="#platform-AGCaesar" title="Packaging/porting to new platform">π¦</a></td> | ||
166 | </tr> | ||
167 | <tr> | ||
168 | <td align="center"><a href="https://github.com/Makazzz"><img src="https://avatars2.githubusercontent.com/u/49844464?v=4" width="40px;" alt="Makazzz"/><br /><sub><b>Makazzz</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3AMakazzz" title="Bug reports">π</a> <a href="https://github.com/kytwb/ferdi/commits?author=Makazzz" title="Code">π»</a> <a href="#translation-Makazzz" title="Translation">π</a></td> | ||
169 | <td align="center"><a href="https://github.com/xthursdayx"><img src="https://avatars0.githubusercontent.com/u/18044308?v=4" width="40px;" alt="xthursdayx"/><br /><sub><b>xthursdayx</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=xthursdayx" title="Code">π»</a> <a href="https://github.com/kytwb/ferdi/commits?author=xthursdayx" title="Documentation">π</a> <a href="#infra-xthursdayx" title="Infrastructure (Hosting, Build-Tools, etc)">π</a> <a href="#platform-xthursdayx" title="Packaging/porting to new platform">π¦</a></td> | ||
170 | </tr> | ||
171 | </table> | ||
172 | |||
173 | <!-- markdownlint-enable --> | ||
174 | <!-- prettier-ignore-end --> | ||
175 | |||
176 | <!-- ALL-CONTRIBUTORS-LIST:END --> | ||
177 | |||
178 | <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> | ||
179 | <!-- prettier-ignore-start --> | ||
180 | <!-- markdownlint-disable --> | ||
181 | <!-- markdownlint-enable --> | ||
182 | <!-- prettier-ignore-end --> | ||
183 | |||
184 | <!-- ALL-CONTRIBUTORS-LIST:END --> | ||
185 | |||
186 | This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! | ||
187 | |||
188 | ## Backers via OpenCollective | ||
189 | |||
190 | <a href="https://opencollective.com/getferdi#backers" target="_blank"><img src="https://opencollective.com/getferdi/backers.svg?width=890"></a> | ||