mirror of
https://github.com/agam778/MS-365-Electron.git
synced 2026-02-17 09:02:10 +00:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62932046e4 | ||
|
|
6ff03b85b9 | ||
|
|
83a1084e06 | ||
|
|
2db6bb827c | ||
|
|
9faa1cde1f | ||
|
|
6d209c1a5b | ||
|
|
ec2421da96 | ||
|
|
09ef206be5 | ||
|
|
e12e5b39b4 | ||
|
|
8dceb827d6 | ||
|
|
92a7b9376d | ||
|
|
a13d790df3 | ||
|
|
09d24e3948 | ||
|
|
2cc3d0c953 | ||
|
|
d5eba0741f | ||
|
|
102746ec3c | ||
|
|
529147bf01 | ||
|
|
39bd965a90 | ||
|
|
d203b214ec | ||
|
|
2b0eb255eb | ||
|
|
876ad5dfb7 | ||
|
|
796c4f63fd | ||
|
|
a3ee81bc32 | ||
|
|
0800464da5 | ||
|
|
03e009b301 | ||
|
|
805f5e1587 | ||
|
|
643b2c134c | ||
|
|
37754a6168 | ||
|
|
45b287dba6 | ||
|
|
10bf359f15 | ||
|
|
69fd40ba07 | ||
|
|
38359f68d1 | ||
|
|
942115fab9 | ||
|
|
9647ca2214 | ||
|
|
cd7ba5d5b4 | ||
|
|
13d5a51c67 | ||
|
|
225f8b2b63 | ||
|
|
3c758d6332 | ||
|
|
4dd73fc13c | ||
|
|
7f7b759706 | ||
|
|
b586c1c48c | ||
|
|
eda2165706 | ||
|
|
075ddf615e | ||
|
|
2f42a345bf | ||
|
|
b08c91a50e |
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -12,10 +12,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: latest
|
||||
|
||||
|
||||
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@@ -12,10 +12,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: latest
|
||||
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.os }}-dist
|
||||
path: |
|
||||
|
||||
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
- uses: actions/stale@v9
|
||||
with:
|
||||
stale-issue-message: 'Message to comment on stale issues. If none provided, will not mark issues stale'
|
||||
stale-pr-message: 'Message to comment on stale PRs. If none provided, will not mark PRs stale'
|
||||
|
||||
Binary file not shown.
BIN
.yarn/cache/@cliqz-adblocker-content-npm-1.26.12-3d830a12e1-941d6195a8.zip
vendored
Normal file
BIN
.yarn/cache/@cliqz-adblocker-content-npm-1.26.12-3d830a12e1-941d6195a8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@cliqz-adblocker-electron-npm-1.26.12-d2b809d772-d106a0046e.zip
vendored
Normal file
BIN
.yarn/cache/@cliqz-adblocker-electron-npm-1.26.12-d2b809d772-d106a0046e.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@cliqz-adblocker-electron-preload-npm-1.26.12-98c7b7ec60-9730fa49df.zip
vendored
Normal file
BIN
.yarn/cache/@cliqz-adblocker-electron-preload-npm-1.26.12-98c7b7ec60-9730fa49df.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@cliqz-adblocker-extended-selectors-npm-1.26.12-1172b29ea2-0f50c02dbe.zip
vendored
Normal file
BIN
.yarn/cache/@cliqz-adblocker-extended-selectors-npm-1.26.12-1172b29ea2-0f50c02dbe.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@cliqz-adblocker-npm-1.26.12-c5692d440d-05cfb455ad.zip
vendored
Normal file
BIN
.yarn/cache/@cliqz-adblocker-npm-1.26.12-c5692d440d-05cfb455ad.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@electron-notarize-npm-2.1.0-300931d556-ac58f39f4b.zip
vendored
Normal file
BIN
.yarn/cache/@electron-notarize-npm-2.1.0-300931d556-ac58f39f4b.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@electron-osx-sign-npm-1.0.5-22146fb2fe-6c662e8bb4.zip
vendored
Normal file
BIN
.yarn/cache/@electron-osx-sign-npm-1.0.5-22146fb2fe-6c662e8bb4.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@electron-universal-npm-1.4.1-4989028044-257f3a25a4.zip
vendored
Normal file
BIN
.yarn/cache/@electron-universal-npm-1.4.1-4989028044-257f3a25a4.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@eslint-community-regexpp-npm-4.6.2-0fc083c210-a3c341377b.zip
vendored
Normal file
BIN
.yarn/cache/@eslint-community-regexpp-npm-4.6.2-0fc083c210-a3c341377b.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-10957c7592.zip
vendored
Normal file
BIN
.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-10957c7592.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@humanwhocodes-object-schema-npm-2.0.1-c23364bbfc-24929487b1.zip
vendored
Normal file
BIN
.yarn/cache/@humanwhocodes-object-schema-npm-2.0.1-c23364bbfc-24929487b1.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@npmcli-agent-npm-2.2.0-cf04e8a830-3b25312edb.zip
vendored
Normal file
BIN
.yarn/cache/@npmcli-agent-npm-2.2.0-cf04e8a830-3b25312edb.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@types-chrome-npm-0.0.248-50cc65ab10-3e3c193af1.zip
vendored
Normal file
BIN
.yarn/cache/@types-chrome-npm-0.0.248-50cc65ab10-3e3c193af1.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@types-firefox-webext-browser-npm-111.0.5-61aee8163c-8e61fb65d0.zip
vendored
Normal file
BIN
.yarn/cache/@types-firefox-webext-browser-npm-111.0.5-61aee8163c-8e61fb65d0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-4f656b7b46.zip
vendored
Normal file
BIN
.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-4f656b7b46.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@xhayper-discord-rpc-npm-1.1.1-8538219719-f3e6e3337a.zip
vendored
Normal file
BIN
.yarn/cache/@xhayper-discord-rpc-npm-1.1.1-8538219719-f3e6e3337a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/abbrev-npm-2.0.0-0eb38a17e5-0e994ad2aa.zip
vendored
Normal file
BIN
.yarn/cache/abbrev-npm-2.0.0-0eb38a17e5-0e994ad2aa.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/agent-base-npm-7.1.0-4b12ba5111-f7828f9914.zip
vendored
Normal file
BIN
.yarn/cache/agent-base-npm-7.1.0-4b12ba5111-f7828f9914.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/axios-npm-1.6.2-2334cb6eee-4a7429e2b7.zip
vendored
Normal file
BIN
.yarn/cache/axios-npm-1.6.2-2334cb6eee-4a7429e2b7.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/builder-util-runtime-npm-9.2.3-3905baa738-f25d6f1235.zip
vendored
Normal file
BIN
.yarn/cache/builder-util-runtime-npm-9.2.3-3905baa738-f25d6f1235.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/cacache-npm-18.0.1-11c6564db0-5a0b3b2ea4.zip
vendored
Normal file
BIN
.yarn/cache/cacache-npm-18.0.1-11c6564db0-5a0b3b2ea4.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/dmg-license-npm-1.0.11-e97c20b75a-8.zip
vendored
BIN
.yarn/cache/dmg-license-npm-1.0.11-e97c20b75a-8.zip
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/electron-dl-npm-3.5.1-9463e218c9-3d176b2005.zip
vendored
Normal file
BIN
.yarn/cache/electron-dl-npm-3.5.1-9463e218c9-3d176b2005.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/electron-log-npm-5.0.1-598c753e33-f7e0266171.zip
vendored
Normal file
BIN
.yarn/cache/electron-log-npm-5.0.1-598c753e33-f7e0266171.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/electron-npm-28.0.0-d90b8e0071-5e0da4f3a8.zip
vendored
Normal file
BIN
.yarn/cache/electron-npm-28.0.0-d90b8e0071-5e0da4f3a8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip
vendored
Normal file
BIN
.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-36e9ef87fc.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/espree-npm-9.6.1-a50722a5a9-eb8c149c7a.zip
vendored
Normal file
BIN
.yarn/cache/espree-npm-9.6.1-a50722a5a9-eb8c149c7a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/glob-npm-10.3.10-da1ef8b112-4f2fe2511e.zip
vendored
Normal file
BIN
.yarn/cache/glob-npm-10.3.10-da1ef8b112-4f2fe2511e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-48d4fac997.zip
vendored
Normal file
BIN
.yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-48d4fac997.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-088969a0dd.zip
vendored
Normal file
BIN
.yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-088969a0dd.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/isexe-npm-3.1.1-9c0061eead-7fe1931ee4.zip
vendored
Normal file
BIN
.yarn/cache/isexe-npm-3.1.1-9c0061eead-7fe1931ee4.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/jackspeak-npm-2.3.6-42e1233172-57d43ad11e.zip
vendored
Normal file
BIN
.yarn/cache/jackspeak-npm-2.3.6-42e1233172-57d43ad11e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/lru-cache-npm-10.1.0-f3d3a0f0ab-58056d33e2.zip
vendored
Normal file
BIN
.yarn/cache/lru-cache-npm-10.1.0-f3d3a0f0ab-58056d33e2.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/make-fetch-happen-npm-13.0.0-f87a92bb87-7c7a6d381c.zip
vendored
Normal file
BIN
.yarn/cache/make-fetch-happen-npm-13.0.0-f87a92bb87-7c7a6d381c.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-b251bceea6.zip
vendored
Normal file
BIN
.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-b251bceea6.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/minipass-npm-7.0.4-eacb4e042e-87585e258b.zip
vendored
Normal file
BIN
.yarn/cache/minipass-npm-7.0.4-eacb4e042e-87585e258b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/node-gyp-npm-10.0.1-48708ce70b-60a74e66d3.zip
vendored
Normal file
BIN
.yarn/cache/node-gyp-npm-10.0.1-48708ce70b-60a74e66d3.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/nopt-npm-7.2.0-dd734b678d-a9c0f57fb8.zip
vendored
Normal file
BIN
.yarn/cache/nopt-npm-7.2.0-dd734b678d-a9c0f57fb8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/path-scurry-npm-1.10.1-52bd946f2e-e2557cff3a.zip
vendored
Normal file
BIN
.yarn/cache/path-scurry-npm-1.10.1-52bd946f2e-e2557cff3a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/proc-log-npm-3.0.0-a8c21c2f0f-02b64e1b39.zip
vendored
Normal file
BIN
.yarn/cache/proc-log-npm-3.0.0-a8c21c2f0f-02b64e1b39.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/socks-proxy-agent-npm-8.0.2-df165543cf-4fb165df08.zip
vendored
Normal file
BIN
.yarn/cache/socks-proxy-agent-npm-8.0.2-df165543cf-4fb165df08.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/tldts-core-npm-6.1.0-151f8f4d4b-e7cb17397e.zip
vendored
Normal file
BIN
.yarn/cache/tldts-core-npm-6.1.0-151f8f4d4b-e7cb17397e.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/tldts-experimental-npm-6.1.0-d0c2c007a3-a4b0058635.zip
vendored
Normal file
BIN
.yarn/cache/tldts-experimental-npm-6.1.0-d0c2c007a3-a4b0058635.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/which-npm-4.0.0-dd31cd4928-f17e84c042.zip
vendored
Normal file
BIN
.yarn/cache/which-npm-4.0.0-dd31cd4928-f17e84c042.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/ws-npm-8.13.0-26ffa3016a-53e991bbf9.zip
vendored
BIN
.yarn/cache/ws-npm-8.13.0-26ffa3016a-53e991bbf9.zip
vendored
Binary file not shown.
BIN
.yarn/cache/ws-npm-8.14.2-b339ac47a2-3ca0dad26e.zip
vendored
Normal file
BIN
.yarn/cache/ws-npm-8.14.2-b339ac47a2-3ca0dad26e.zip
vendored
Normal file
Binary file not shown.
541
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
541
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
File diff suppressed because one or more lines are too long
874
.yarn/releases/yarn-3.6.1.cjs
vendored
874
.yarn/releases/yarn-3.6.1.cjs
vendored
File diff suppressed because one or more lines are too long
893
.yarn/releases/yarn-4.0.2.cjs
vendored
Executable file
893
.yarn/releases/yarn-4.0.2.cjs
vendored
Executable file
File diff suppressed because one or more lines are too long
@@ -1,7 +1,3 @@
|
||||
nodeLinker: node-modules
|
||||
|
||||
plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
|
||||
spec: "@yarnpkg/plugin-interactive-tools"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.6.1.cjs
|
||||
yarnPath: .yarn/releases/yarn-4.0.2.cjs
|
||||
|
||||
60
README.md
60
README.md
@@ -1,5 +1,5 @@
|
||||
<p align="center"><img src="https://github.com/agam778/MS-365-Electron/blob/main/assets/banner.png?raw=true" alt="Intro Image"></p>
|
||||
<p align="center">Thanks a lot to <a href="https://t.me/NextWorksGFX">@NextWorksGFX</a> for this amazing banner!</p>
|
||||
<p align="center"><img src="https://github.com/agam778/MS-365-Electron/blob/main/assets/banner.png?raw=true" alt="Credits: "></p>
|
||||
<p align="center">Thanks to <a href="https://t.me/NextWorksGFX">@NextWorksGFX</a> for this amazing banner!</p>
|
||||
<p align="center">Unofficial Microsoft 365 Web Desktop Wrapper made with Electron</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -18,9 +18,6 @@
|
||||
<a href="https://github.com/agam778/MS-365-Electron/releases/">
|
||||
<img align="center" src="https://img.shields.io/github/downloads/agam778/MS-365-Electron/total?label=Downloads&style=style=flat">
|
||||
</a>
|
||||
<a href="https://github.com/agam778/MS-365-Electron/releases/latest/">
|
||||
<img align="center" src="https://img.shields.io/github/downloads/agam778/MS-365-Electron/latest/total?label=Downloads%40Latest">
|
||||
</a>
|
||||
<a href="https://github.com/agam778/MS-365-Electron/actions/workflows/build.yml">
|
||||
<img align="center" src="https://github.com/agam778/MS-365-Electron/actions/workflows/build.yml/badge.svg">
|
||||
</a>
|
||||
@@ -42,32 +39,29 @@
|
||||
- [💿 Installation on Linux](#-installation-on-linux)
|
||||
- [Installation on Ubuntu/Debian based distributions](#installation-on-ubuntudebian-based-distributions)
|
||||
- [Installation on Red Hat/Fedora based distributions](#installation-on-red-hatfedora-based-distributions)
|
||||
- [Installation on Arch/Manjaro Linux based distributions](#installation-on-archmanjaro-linux-based-distributions)
|
||||
- [Installation on Gentoo Linux](#installation-on-gentoo-linux)
|
||||
- [Installation on Arch Linux based distributions](#installation-on-arch-linux-based-distributions)
|
||||
- [Installation on Gentoo Linux (Unmaintained)](#installation-on-gentoo-linux-unmaintained)
|
||||
- [💻 Developing Locally](#-developing-locally)
|
||||
- [📃 MIT License](#-mit-license)
|
||||
- [*Disclaimer: Not affiliated with Microsoft. Office, the name, website, images/icons are the intellectual properties of Microsoft.*](#disclaimer-not-affiliated-with-microsoft-office-the-name-website-imagesicons-are-the-intellectual-properties-of-microsoft)
|
||||
|
||||
# Introduction
|
||||
|
||||
This project is basically a Desktop wrapper for the web version of [Microsoft 365](https://microsoft365.com), which is free but with some basic limits.
|
||||
MS-365-Electron streamlines your workflow by offering a dedicated desktop interface for the free, web-based version of [Microsoft 365](https://microsoft365.com). Think of it as a convenient launchpad for web applications like Word, Excel, and PowerPoint, eliminating the need to navigate through browser tabs.
|
||||
|
||||
I initially made this project because I wanted to use Microsoft 365 on my Linux system with a native experience. Later, I decided to make it public so that others can enjoy this too!
|
||||
|
||||
Don't expect this to be a full-fledged Microsoft 365 Desktop Suite (like we have for Windows/macOS), it's just a wrapper of the web version of Microsoft 365.
|
||||
This is not a full-fledged Microsoft 365 Suite, but just a web wrapper for Microsoft 365 Web, made with Electron.
|
||||
|
||||
Note - Windows Hello or Sign in with Security key is **not** supported and will show you an error. You will have to manually sign in with your E-Mail and Password.
|
||||
|
||||
***Do Expect bugs***
|
||||
***Do expect bugs***
|
||||
|
||||
Supported Platforms
|
||||
|
||||
1. Windows x64 (EXE File)
|
||||
2. macOS x64 (DMG File)
|
||||
1. Windows - x64 (EXE File)
|
||||
2. macOS - x64 and M-series Macs (DMG File)
|
||||
3. Ubuntu/Debian based distributions (DEB File)
|
||||
4. Red Hat Linux/Fedora based distributions (RPM File)
|
||||
5. Arch/Manjaro Linux based distributions (Uploaded on AUR)
|
||||
6. Gentoo Linux (Unofficial overlay)
|
||||
5. Arch Linux based distributions (Uploaded on AUR)
|
||||
6. Gentoo Linux (Unofficial overlay) **[MAINTAINER NEEDED]**
|
||||
7. All Distributions supporting AppImage (AppImage File); and
|
||||
8. All Distributions supporting Snap (Uploaded on Snap Store)
|
||||
|
||||
@@ -75,10 +69,10 @@ Supported Platforms
|
||||
|
||||
- Discord RPC
|
||||
- Dynamic Icons:
|
||||
- For macOS: Change icon in dock according to the app you've opened [[Preview]](https://github-production-user-asset-6210df.s3.amazonaws.com/68941022/245203309-3d0dfc1b-02e9-43a8-85d7-9493a2b86b56.mp4)
|
||||
- For Windows: Set overlay icon [[Preview]](https://github.com/agam778/MS-365-Electron/assets/68941022/791b661b-2b7d-43a6-96df-ee9c30c9b18a)
|
||||
- For macOS: App's icon in dock changes according to the app you've opened [[Preview]](https://github-production-user-asset-6210df.s3.amazonaws.com/68941022/245203309-3d0dfc1b-02e9-43a8-85d7-9493a2b86b56.mp4)
|
||||
- For Windows: Sets overlay icon [[Preview]](https://github.com/agam778/MS-365-Electron/assets/68941022/791b661b-2b7d-43a6-96df-ee9c30c9b18a)
|
||||
- For Linux: Nothing, yet
|
||||
- Block Ads within the app
|
||||
- Block Ads and Trackers within the app, preventing ads in websites like Outlook
|
||||
- Directly open apps from the menu
|
||||
- Ability to use useragent strings of Windows, macOS or Linux
|
||||
- Switch between normal and enterprise/education/developer account in the same app
|
||||
@@ -153,9 +147,9 @@ For Installing in Red Hat/Fedora based distribution :-
|
||||
2) Scroll down and click the `.rpm` file to download it.
|
||||
3) Then run the rpm file and click Install to install the App. Launch it from the Applications Menu.
|
||||
|
||||
### Installation on Arch/Manjaro Linux based distributions
|
||||
### Installation on Arch Linux based distributions
|
||||
|
||||
1. Install any AUR helper like [`yay`](https://github.com/Jguer/yay)
|
||||
1. Install any AUR helper like [`yay`](https://github.com/Jguer/yay) or [paru](https://github.com/Morganamilo/paru)
|
||||
|
||||
2. There are 2 packages in the AUR
|
||||
- `ms-365-electron-bin`: For installing pre-built releases
|
||||
@@ -169,7 +163,9 @@ For Installing in Red Hat/Fedora based distribution :-
|
||||
|
||||
4. Wait for it to install and tada! The app is installed.
|
||||
|
||||
### Installation on Gentoo Linux
|
||||
### Installation on Gentoo Linux (Unmaintained)
|
||||
|
||||
_Maintainer needed_
|
||||
|
||||
1. This is supported by an ebuild uploaded on my unofficial overlay. First, enable the overlay on your system:
|
||||
|
||||
@@ -194,16 +190,10 @@ yarn install
|
||||
```
|
||||
```bash
|
||||
$ yarn run
|
||||
yarn run v1.22.18
|
||||
info Commands available from binary scripts: asar, dircompare, ejs, electron, electron-builder, electron-osx-flat, electron-osx-sign, extract-zip, install-app-deps, is-ci, jake, js-yaml, json5, mime, mkdirp, node-which, rc, rimraf, semver
|
||||
info Project commands
|
||||
- dist
|
||||
electron-builder
|
||||
- pack
|
||||
electron-builder --dir
|
||||
- start
|
||||
electron .
|
||||
question Which command would you like to run?:
|
||||
➤ YN0000: start 'electron .'
|
||||
➤ YN0000: pack 'electron-builder --dir'
|
||||
➤ YN0000: dist 'electron-builder'
|
||||
➤ YN0000: Done in 0s 2ms
|
||||
```
|
||||
|
||||
To start the app, run `yarn start`<br>
|
||||
@@ -211,4 +201,6 @@ To build the app, run `yarn dist`
|
||||
|
||||
# 📃 MIT License
|
||||
|
||||
#### *Disclaimer: Not affiliated with Microsoft. Office, the name, website, images/icons are the intellectual properties of Microsoft.*
|
||||
View the [LICENSE](./LICENSE)
|
||||
|
||||
*Disclaimer: Not affiliated with Microsoft. Office, the name, website, images/icons are the intellectual properties of Microsoft.*
|
||||
|
||||
42
app/main.js
42
app/main.js
@@ -16,16 +16,33 @@ console.log = log.log;
|
||||
Object.assign(console, log.functions);
|
||||
|
||||
function createWindow() {
|
||||
const win = new BrowserWindow({
|
||||
width: 1181,
|
||||
height: 670,
|
||||
icon: path.join(__dirname, "/assets/icons/png/1024x1024.png"),
|
||||
show: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
devTools: true,
|
||||
},
|
||||
});
|
||||
if (getValue("enterprise-or-normal") === "https://microsoft365.com/?auth=1") {
|
||||
var win = new BrowserWindow({
|
||||
width: 1181,
|
||||
height: 670,
|
||||
icon: path.join(__dirname, "/assets/icons/png/1024x1024.png"),
|
||||
show: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
devTools: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
} else if (
|
||||
getValue("enterprise-or-normal") === "https://microsoft365.com/?auth=2"
|
||||
) {
|
||||
var win = new BrowserWindow({
|
||||
width: 1181,
|
||||
height: 670,
|
||||
icon: path.join(__dirname, "/assets/icons/png/1024x1024.png"),
|
||||
show: false,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
devTools: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (getValue("autohide-menubar") === "true") {
|
||||
win.setAutoHideMenuBar(true);
|
||||
@@ -281,6 +298,11 @@ app.on("web-contents-created", (event, contents) => {
|
||||
});
|
||||
|
||||
app.on("browser-window-created", (event, window) => {
|
||||
if (getValue("autohide-menubar") === "true") {
|
||||
window.setAutoHideMenuBar(true);
|
||||
} else {
|
||||
window.setAutoHideMenuBar(false);
|
||||
}
|
||||
window.webContents.on("did-finish-load", () => {
|
||||
if (getValue("discordrpcstatus") === "true") {
|
||||
setActivity(`On "${window.webContents.getTitle()}"`);
|
||||
|
||||
126
app/menu.js
126
app/menu.js
@@ -103,6 +103,7 @@ function setUserAgent(useragent) {
|
||||
}
|
||||
|
||||
getValueOrDefault("enterprise-or-normal", "https://microsoft365.com/?auth=1");
|
||||
getValueOrDefault("websites-in-new-window", "true");
|
||||
getValueOrDefault("autohide-menubar", "false");
|
||||
getValueOrDefault("useragentstring", useragents.Windows);
|
||||
getValueOrDefault("discordrpcstatus", "false");
|
||||
@@ -160,7 +161,7 @@ const menulayout = [
|
||||
label: "Preferences",
|
||||
submenu: [
|
||||
{
|
||||
label: "Open Normal version of MS 365",
|
||||
label: "Open MS 365 with Personal Account",
|
||||
type: "radio",
|
||||
click() {
|
||||
setValue(
|
||||
@@ -169,9 +170,9 @@ const menulayout = [
|
||||
);
|
||||
dialog.showMessageBoxSync({
|
||||
type: "info",
|
||||
title: "Normal version of MS 365",
|
||||
title: "MS 365 with Personal Account",
|
||||
message:
|
||||
"The normal version of MS 365 will be opened.\n\nPlease restart the app to apply the changes.",
|
||||
"MS 365 will now open with your Personal Account.\n\nPlease restart the app to apply the changes.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
},
|
||||
@@ -180,7 +181,7 @@ const menulayout = [
|
||||
"https://microsoft365.com/?auth=1",
|
||||
},
|
||||
{
|
||||
label: "Open Enterprise version of MS 365",
|
||||
label: "Open MS 365 with Work/School Account",
|
||||
type: "radio",
|
||||
click() {
|
||||
setValue(
|
||||
@@ -189,9 +190,9 @@ const menulayout = [
|
||||
);
|
||||
dialog.showMessageBoxSync({
|
||||
type: "info",
|
||||
title: "Enterprise version of MS 365",
|
||||
title: "MS 365 with Work/School Account",
|
||||
message:
|
||||
"The enterprise version of MS 365 will be opened.\n\nPlease restart the app to apply the changes.",
|
||||
"MS 365 will now open with your Work/School account.\n\nPlease restart the app to apply the changes.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
},
|
||||
@@ -466,7 +467,7 @@ const menulayout = [
|
||||
},
|
||||
{ type: "separator" },
|
||||
{
|
||||
label: "Open Normal version of MS 365",
|
||||
label: "Open MS 365 with Personal Account",
|
||||
type: "radio",
|
||||
click() {
|
||||
setValue(
|
||||
@@ -475,9 +476,9 @@ const menulayout = [
|
||||
);
|
||||
dialog.showMessageBoxSync({
|
||||
type: "info",
|
||||
title: "Normal version of MS 365",
|
||||
title: "MS 365 with Personal Account",
|
||||
message:
|
||||
"The normal version of MS 365 will be opened.\n\nPlease restart the app to apply the changes.",
|
||||
"MS 365 will now open with your Personal Account.\n\nPlease restart the app to apply the changes.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
},
|
||||
@@ -486,7 +487,7 @@ const menulayout = [
|
||||
"https://microsoft365.com/?auth=1",
|
||||
},
|
||||
{
|
||||
label: "Open Enterprise version of MS 365",
|
||||
label: "Open MS 365 with Work/School Account",
|
||||
type: "radio",
|
||||
click() {
|
||||
setValue(
|
||||
@@ -495,9 +496,9 @@ const menulayout = [
|
||||
);
|
||||
dialog.showMessageBoxSync({
|
||||
type: "info",
|
||||
title: "Enterprise version of MS 365",
|
||||
title: "MS 365 with Work/School Account",
|
||||
message:
|
||||
"The enterprise version of MS 365 will be opened.\n\nPlease restart the app to apply the changes.",
|
||||
"MS 365 will now open with your Work/School account.\n\nPlease restart the app to apply the changes.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
},
|
||||
@@ -722,18 +723,35 @@ const menulayout = [
|
||||
label: "File",
|
||||
submenu: [
|
||||
{
|
||||
label: "New Window",
|
||||
label: "New Window (Personal)",
|
||||
accelerator: "CmdOrCtrl+N",
|
||||
click: () => {
|
||||
let newWindow = new BrowserWindow({
|
||||
width: 1181,
|
||||
height: 670,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
devTools: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
newWindow.loadURL(getValue("enterprise-or-normal"));
|
||||
newWindow.loadURL("https://microsoft365.com/?auth=1");
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "New Window (Work/School)",
|
||||
accelerator: "CmdOrCtrl+Shift+N",
|
||||
click: () => {
|
||||
let newWindow = new BrowserWindow({
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
devTools: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
newWindow.loadURL("https://microsoft365.com/?auth=2");
|
||||
},
|
||||
},
|
||||
{ type: "separator" },
|
||||
@@ -741,7 +759,11 @@ const menulayout = [
|
||||
label: "Close Window",
|
||||
accelerator: "CmdOrCtrl+W",
|
||||
click: () => {
|
||||
BrowserWindow.getFocusedWindow().close();
|
||||
try {
|
||||
BrowserWindow.getFocusedWindow().close();
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -863,11 +885,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let wordwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
wordwindow.loadURL("https://microsoft365.com/launch/word?auth=2");
|
||||
@@ -882,11 +905,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let wordwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
wordwindow.loadURL("https://microsoft365.com/launch/word?auth=1");
|
||||
@@ -907,11 +931,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let excelwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
excelwindow.loadURL(
|
||||
@@ -928,11 +953,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let excelwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
excelwindow.loadURL(
|
||||
@@ -955,11 +981,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let powerpointwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
powerpointwindow.loadURL(
|
||||
@@ -976,11 +1003,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let powerpointwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
powerpointwindow.loadURL(
|
||||
@@ -1003,11 +1031,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let outlookwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
outlookwindow.loadURL("https://outlook.office.com/mail/");
|
||||
@@ -1022,11 +1051,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let outlookwindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
outlookwindow.loadURL(
|
||||
@@ -1049,11 +1079,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let onedrivewindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
onedrivewindow.loadURL(
|
||||
@@ -1070,11 +1101,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let onedrivewindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
onedrivewindow.loadURL(
|
||||
@@ -1097,11 +1129,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let onenotewindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
onenotewindow.loadURL(
|
||||
@@ -1118,11 +1151,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let onenotewindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
onenotewindow.loadURL("https://www.onenote.com/notebooks?auth=1");
|
||||
@@ -1143,11 +1177,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let allappswindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:work",
|
||||
},
|
||||
});
|
||||
allappswindow.loadURL("https://www.microsoft365.com/apps?auth=2");
|
||||
@@ -1162,11 +1197,12 @@ const menulayout = [
|
||||
) {
|
||||
if (getValue("websites-in-new-window") === "true") {
|
||||
let allappswindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
width: 1081,
|
||||
height: 570,
|
||||
webPreferences: {
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
partition: "persist:personal",
|
||||
},
|
||||
});
|
||||
allappswindow.loadURL("https://www.microsoft365.com/apps?auth=1");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Windows": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
|
||||
"macOS": "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
|
||||
"Linux": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
|
||||
"Windows": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"macOS": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||||
"Linux": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Loading MS-Office-Electron</title>
|
||||
<title>Loading MS-365-Electron</title>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"
|
||||
@@ -10,7 +10,6 @@
|
||||
<link rel="stylesheet" href="./style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<!-- partial:index.partial.html -->
|
||||
<div id="particles-background" class="vertical-centered-box"></div>
|
||||
<div id="particles-foreground" class="vertical-centered-box"></div>
|
||||
|
||||
@@ -24,11 +23,10 @@
|
||||
width="50px"
|
||||
height="auto"
|
||||
viewBox="0 0 36 24"
|
||||
src="https://github.com/agam778/MS-Office-Electron/raw/main/assets/icon.png"
|
||||
src="https://github.com/agam778/MS-365-Electron/raw/main/assets/icon.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- partial -->
|
||||
<script src="./script.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ms-365-electron",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.0",
|
||||
"description": "Unofficial Microsoft 365 Web Desktop Wrapper made with Electron",
|
||||
"main": "app/main.js",
|
||||
"repository": {
|
||||
@@ -66,7 +66,7 @@
|
||||
},
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"electron": "^25.3.2",
|
||||
"electron": "^28.0.0",
|
||||
"electron-builder": "^24.6.3",
|
||||
"eslint": "^8.45.0"
|
||||
},
|
||||
@@ -82,7 +82,7 @@
|
||||
"electron-log": "^5.0.0-beta.25",
|
||||
"electron-store": "^8.1.0",
|
||||
"electron-updater": "^6.1.4",
|
||||
"node-gyp": "^9.4.0"
|
||||
"node-gyp": "^10.0.0"
|
||||
},
|
||||
"packageManager": "yarn@3.6.1"
|
||||
"packageManager": "yarn@4.0.2"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user