Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/parazeeknova/nyxtext-zenith

Text Editor built with PyQt6 & Python. In phase of transition from editor to IDE, with a mission of providing comprehensive editor for all devs.
https://github.com/parazeeknova/nyxtext-zenith

development ide productivity pyside6 python3 qscintilla text-editor wip

Last synced: 3 months ago
JSON representation

Text Editor built with PyQt6 & Python. In phase of transition from editor to IDE, with a mission of providing comprehensive editor for all devs.

Awesome Lists containing this project

README

        

###### *

// give it a try!
*


Stargazers


Issues


Maintained

Releases


Logo



![Python](https://img.shields.io/badge/Python-Programming%20Language-8aadf4?style=for-the-badge&logo=python&logoColor=D9E0EE&labelColor=302D41)
![PyQt6](https://img.shields.io/badge/PyQt6-GUI%20Framework-a6da95?style=for-the-badge&logo=qt&logoColor=D9E0EE&labelColor=302D41)
![QScintilla](https://img.shields.io/badge/QScintilla-Text%20Editor%20Component-8bd5ca?style=for-the-badge&logoColor=D9E0EE&labelColor=302D41)




 Installation 
  

 Screenshots 
  

 Contribution 
  

 About 
  

 Keyboard Shortcuts 


###### *

// About
*


Nyxtext-zenith represents the next leap forward in text editing, building upon the foundation laid by its predecessor, Nyxtext. Reborn with PyQt6 and QScintilla. As the successor to Nyxtext, the core mission of providing a comprehensive text editor for developers. Nyxtext-zenith aims to surpass its forerunner by offering an even more robust, intelligent, and versatile text editing experience. It continues the nyxtext legacy of eliminating the need for multiple text-related applications, now with greater efficiency and an expanded feature set.


Project Structure

[zenith](zenith/) - Main application directory
[colors](zenith/colors/) - Color schemes for the application
[components](zenith/components/) - Components for the application
[core](zenith/core/) - Core components for the application (Subclasses, threading, core functions)
[framework](zenith/framework/) - Framework for the application
[lexers](zenith/lexers/) - Lexers for syntax highlighting
[media](zenith/media/) - Media files
[scripts](zenith/scripts/) - Scripts
[`__init__.py`](zenith/__init__.py) - Initialization
[`__main__.py`](zenith/__main__.py) - Entry point
[`color_schemes.lua`](zenith/color_schemes.lua) - Customizable color schemes
[`shortcuts.lua`](zenith/shortcuts.lua) - Customizable shortcuts
[`config.lua`](zenith/config.lua) - Configuration for the application

###### *

// Socials
*






Github Logo







Discord Logo







Twitter Logo







Reddit Logo








> [!IMPORTANT]
> Because the application is not signed by Microsoft, Windows Defender blocks it; add an exclusion in Defender to run the application. Its a false positive, the application is safe to use. or build it yourself from the source code.


### 🖼️ Screenshots

| default | filetree (Docked) | autocompletions | calltips |
| ------------------------------------------ | --------------------------------------------------- | ---------------------------------------------------------- | -------------------------------------------- |
| ![default](assets/screenshots/default.png) | ![filetree](assets/screenshots/docked_filetree.png) | ![autocompletions](assets/screenshots/autocompletions.png) | ![calltips](assets/screenshots/calltips.png) |

| filetree | catppuccin (macchiato) | gruvbox | dusk |
| ---------------------------------------------------- | ------------------------------------------------ | ------------------------------------------ | ------------------------------------ |
| ![filetree](assets/screenshots/context_filetree.png) | ![catppuccin](assets/screenshots/catppuccin.png) | ![gruvbox](assets/screenshots/gruvbox.png) | ![dusk](assets/screenshots/dusk.png) |


### ✨ Installing Nyxtext

Windows

There are multiple ways to run NyxText on Windows. Here are some common methods:

1. Using the standalone executable (recommended for users):
- Download the latest stable release from the [Releases](https://github.com/parazeeknova/nyxtext-zenith/releases)
- Extract the downloaded ZIP file
- Add an exclusion in Windows Defender to run the application
- Run the `Nyxtext.exe` file

2. Using development release (recommended for testers):

> [!CAUTION]
> Currently action builds are not working due to some issues, please use the standalone executable from releases .

- Download the latest development release from the [Action Build](https://github.com/parazeeknova/nyxtext-zenith/actions)
- Extract the downloaded ZIP file
- Add an exclusion in Windows Defender to run the application
- Run the `Nyxtext.exe` file

1. Using development environment (recommended for developers):
- Open a terminal and run the following commands:
```bash
git clone --depth 1 https://github.com/parazeeknova/nyxtext-zenith.git
cd nyxtext-zenith
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python -m zenith
OR run Nyxtext.py in the root directory
```
2. Using Build script (recommended for developers):
- Open a terminal and run the following commands:
```bash
git clone --depth 1 https://github.com/parazeeknova/nyxtext-zenith.git
cd nyxtext-zenith
run windows-build.bat
```

Debian-based Linux distributions (e.g. Ubuntu, Mint)

Didn't test it on Linux yet, but it should work. Currently only running from source code is supported.
**Open a terminal and run these commands:**

```bash
sudo apt update
sudo apt install python3 python3-pip python3-venv
git clone --depth 1 https://github.com/parazeeknova/nyxtext-zenith.git
cd nyxtext-zenith
python3 -m venv nyxtext
source nyxtext/bin/activate
pip install -r requirements.txt
python -m zenith
OR run Nyxtext.py in the root directory
```
Let me know if it works.

Arch Linux

Didn't test it on Arch Linux yet, but it should work. Currently only running from source code is supported.
**To install NyxText on Arch Linux, you can follow these steps:**

```bash
sudo pacman -Sy python
git clone --depth 1 https://github.com/parazeeknova/nyxtext-zenith.git
cd nyxtext-zenith
python -m venv nyxtext
source nyxtext/bin/activate
pip install -r requirements.txt
python -m zenith
OR run Nyxtext.py in the root directory
```
Let me know if it works.

MacOS

I don't have a Mac. If you have a Mac, you can help me a lot by installing
Nyxtext and letting me know how well it works.



 🡅 

### 🎨 Features :
- Edit Text files ~ duh.
- Basic functionality of a text editor like save, open, close, etc.
- **Syntax Highlighting** for _**35+**_ languages.
- Catppuccin Macciatto theme by default for Python, C++, Javascript, HTML, CSS, JSON, Markdown, and more. (check `zenith/lexers` folder)
- **Code Folding** for better code readability.
- **Filetree** for easy navigation. (Toggle with `Ctrl + F`)
- **Dockable Filetree** panes.
- Adjustable panes for filetree, Workspace, and Codespace.
- **Customizable** shortcuts using Lua, edit `zenith/shortcuts.lua`.
- **Fully Customizable theme** using Lua, edit `zenith/color_schemes.lua` can edit every corner of the app.
- Ability to toggle between custom titlebar and default titlebar (windows default).
- **Highly Customizable** themes using Lua, edit `zenith/color_themes.lua`.
- Workspace and Codespace tabs for better organization.
- **Tab** switching using `Ctrl + Tab` and `Ctrl + Shift + Tab`.
- Unsaved changes indicator.
- **Auto-indentation** for Python, C++, Java, and more.
- Files can be opened from CLI using `Nyxtext.exe -o ` or `Nyxtext.exe --open `.
- Custom titlebar with inbuild menubar.
- Statusbar with line and column number.
- Dynamic **statusbar** that displays operations performed.
- Read-only mode for files by default to enter edit mode press `Ctrl + E`.
- Calltips and autocompletions for Python, Lua currently.
- **Terminal** integration.

_More features coming soon._


### ⌨️ Shortcut Keys

> [!TIP]
> These are the default shortcut keys, you can change them from `shortcuts.lua` in `zenith` folder.

| Shortcut Key | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------ |
| Ctrl + N | Create a new Workspace Tab (for txt editing) |
| Ctrl + Shift + N | Create a new Codespace Tab (for code editing) |
| Ctrl + O | Open File (automatically detects filetype and opens in Workspace os Codespace) |
| Ctrl + Shift + O | Open Folder in Filetree |
| Ctrl + S | Save File |
| Ctrl + Shift + S | Save File As |
| Ctrl + Tab | Switch Tab next |
| Ctrl + Shift + Tab | Switch Tab previous |
| Ctrl + F | Show/hide FileTree |
| Ctrl + W | Close Tab |
| Ctrl + Shift + W | Close All Tabs |
| Ctrl + Shift + Q | Exit |
| Ctrl + E | Toggle Edit mode |
| Ctrl + = | Zoom In |
| Ctrl + - | Zoom Out |
| Ctrl + ` | Toggle Terminal |
| F11 | Maximise |
| Ctrl + M | Minimise |
| ... | More soon |

> [!TIP]
> Files can be opened by CLI using `Nyxtext.exe -o ` or `Nyxtext.exe --open `.




 🡅 

### 💡Future Plans :
- [x] ~~Build `exe` for windows~~ - ✅ Done in alphav0.0.1
- [ ] Complete Menu bar options.
- [x] ~~Add more themes.~~ - ✅ Done
- [X] ~~Add more languages for syntax highlighting.~~ - ✅ Done
- [x] ~~Terminal integration.~~ - ⚠️ Makeshift for now
- [ ] Add more shortcuts. (VIM MOTIONS)
- [ ] Autocompletions for Python, C++, Javascript, and more.
- [ ] Linux and MacOS support.
- [ ] Grammer check for Workspace.
- [x] ~~Code folding for Codespace.~~ - ✅ Done in alphav0.0.2
- [ ] Git support
- [ ] Hyperlinks, Markdown support
- [ ] Split view for Codespace
- [ ] AI Integration for code suggestions
- [ ] More to come...
 

### 🛹 Development

![Alt](https://repobeats.axiom.co/api/embed/5230d7fbefe5348128ff699761be93de2b030176.svg "Repobeats analytics image")
[FAQ & Info](https://github.com/parazeeknova/nyxtext-zenith/blob/main/.github/ABOUT.md)

---

### 👐 Contributing

> [!NOTE]
> Thank you for considering contributing to Nyxtext Zenith! We welcome contributions from everyone, whether you're fixing a bug, adding a feature, or improving documentation.

See [CONTRIBUTING.md](https://github.com/parazeeknova/nyxtext-zenith/blob/main/.github/CONTRIBUTING.md)


### 📜 License



 🡅 

NyxText Zenith is released under the MIT license:
For more convoluted language, see the [LICENSE](https://github.com/parazeeknova/nyxtext-zenith/blob/main/LICENSE).

Copyright © 2024-present NyxText Zenith