1679588429
Существуют разные способы выключения устройства, и выключить Linux Mint тремя щелчками мыши очень просто. Но зачем тратить лишнюю энергию, если можно сделать это в два этапа? Все, что вам нужно сделать, это создать кнопку выключения (Power off) на рабочем столе. В этом руководстве мы продемонстрировали шаги по добавлению кнопки быстрого доступа на рабочий стол в Linux Mint 21.
Вам не нужно никакого дополнительного программного обеспечения для создания кнопки выключения для вашего рабочего стола Linux. Это просто вопрос создания и добавления нового ярлыка на рабочий стол. Вы можете добавить кнопку быстрого доступа для выключения ноутбука следующим образом:
Шаг 1: В Linux в каталоге /sbin есть утилита выключения. Откройте терминал и выполните приведенную ниже команду, чтобы изменить безопасность исполняемого файла. Вам потребуется добавить пароль:
sudo chmod u+s /sbin/shutdown
После выполнения команды выйдите из терминала.
Шаг 2: Затем щелкните правой кнопкой мыши пустое место на рабочем столе и выберите «Создать новую программу запуска здесь…» из списка контекстного меню:
Шаг 3: Откроется новое окно, введите имя ярлыка, вы можете назвать его по своему выбору, а в поле «Команда» введите следующую команду и нажмите «ОК» :
shutdown -Ph now
Шаг 4: После сохранения на рабочем столе будет создан ярлык с введенным вами именем. Дважды щелкните по нему, чтобы проверить, работает он или нет, он должен выключить ваше устройство:
Добавление кнопки выключения на рабочий стол даст вам более доступный вариант. В Linux есть встроенная утилита для создания кнопки выключения рабочего стола, все, что вам нужно, это сделать файл исполняемым. Выполните вышеупомянутые шаги для создания ярлыка и выключения ноутбука одним щелчком мыши.
Оригинальный источник статьи: https://linuxhint.com/
1679584623
有多种关闭设备的方法,单击三下即可轻松关闭 Linux Mint。但是,既然可以分两步完成,为什么还要花费额外的精力呢?您所要做的就是在桌面上创建一个关机(关机)按钮。在本教程中,我们演示了在 Linux Mint 21 上将快捷按钮添加到桌面的步骤。
您不需要任何额外的软件来为您的 Linux 桌面创建关机按钮。只需创建一个新的快捷方式并将其添加到桌面即可。您可以添加快捷按钮来关闭笔记本电脑,如下所示:
第一步:在Linux中,/sbin目录下有shutdown这个关机工具。打开终端并执行下面给定的命令来更改可执行文件的安全性。它将要求您添加密码:
sudo chmod u+s /sbin/shutdown
执行命令后,退出终端。
第 2 步:接下来右键单击桌面上的空白区域,然后从上下文菜单列表中选择在此处创建新的启动器... :
第 3 步:将打开一个新窗口,键入快捷方式的名称,您可以根据自己的选择命名它,然后在“命令”字段中输入以下命令并选择“确定”:
shutdown -Ph now
第四步:保存后,桌面上会生成一个以你输入的名称命名的快捷方式。双击它以检查它是否正常工作,它应该会关闭您的设备:
在桌面上添加关机按钮将为您提供更直接的可访问选项。在 Linux 中,有一个内置实用程序可以为您的桌面创建一个关机按钮,您所需要的只是使该文件可执行。按照上述步骤创建快捷方式,单击即可关闭笔记本电脑。
文章原文出处:https: //linuxhint.com/
1679566440
There are different ways to shutdown the device and shutting down the Linux Mint with three clicks is easy. But why spend the extra energy when you can do it in two steps? All you have to perform is to create a shutdown (Power off) button on your desktop. In this tutorial, we have demonstrated the steps for adding the shortcut button to your desktop on Linux Mint 21.
You don’t need any extra software for creating the shutdown button for your Linux desktop. It is simply a matter of creating and adding a new shortcut to the desktop. You can add the shortcut button to shut down the laptop as follows:
Step 1: In Linux, there is the shutdown utility of shutdown in the /sbin directory. Open the terminal and execute the below given command to change the security of the executable. It will require you to add the password:
sudo chmod u+s /sbin/shutdown
Once executed the command, exit the terminal.
Step 2: Next right-click on the empty space on your desktop and choose Create a new launcher here… from the list of context menu:
Step 3: A new window will open, type the Name of the shortcut, you can name it according to your own choice and in the Command, field enter the following command and choose OK:
shutdown -Ph now
Step 4: After saving it, the shortcut with the name you have entered will be created on your desktop. Double-click on it to check whether it’s working or not, it should shut down your device:
Adding a shutdown button to your desktop will give you a more directly accessible option. In Linux there is a built-in utility for creating a shutdown button for your desktop, all you need is to make the file executable. Follow the above-mentioned steps for creating the shortcut and shut down your laptop with a single click.
Original article source at: https://linuxhint.com/
1679317505
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. For more info on PowerToys overviews and how to use the utilities, or any other tools and resources for Windows development environments, head over to learn.microsoft.com!
Go to Microsoft PowerToys GitHub releases page, click on Assets
at the bottom to show the files available in the release. Please use the appropriate PowerToys installer that matches your machine's architecture. For most, it is x64
.
This is our preferred method.
Install from the Microsoft Store's PowerToys page. You must be using the new Microsoft Store which is available for both Windows 11 and Windows 10.
Download PowerToys from WinGet. To install PowerToys, run the following command from the command line / PowerShell:
winget install Microsoft.PowerToys -s winget
There are community driven install methods such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there.
This project welcomes contributions of all types. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
We ask that before you start work on a feature that you would like to contribute, please read our Contributor's Guide. We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution.
For guidance on developing for PowerToys, please read the developer docs for a detailed breakdown. This includes how to setup your computer to compile.
Our prioritized roadmap of features and utilities that the core team is focusing on.
In this release, we focused on releasing new features, stability and improvements.
Highlights
For v0.69, we'll work on below:
The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldn’t be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Month over month, you directly help make PowerToys a better piece of software.
This project has adopted the Microsoft Open Source Code of Conduct.
The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the Microsoft privacy statement for more information.
Author: Microsoft
Source Code: https://github.com/microsoft/PowerToys
License: MIT license
1676544543
Follow this tutorial to see how I use KService and Ansible on my Linux KDE desktop.
I run the KDE Plasma Desktop on my computer because it's a flexible environment with lots of options for customization. Having choices in your desktop is about more than just having lots of menus and buttons to activate or deactivate. The thing I love most about KDE Plasma Desktop is the ability to add my own features to it. One reason this is possible is KServices, a simple but powerful plugin framework for handling desktop services.
In the KDE Plasma Desktop, there's usually a contextual menu available when you right-click on something, such as a directory or a file. You can add items to the right-click menu by creating your own KService, and you don't need anything more than a rudimentary understanding of Bash to make it work.
First, create a new directory for your service menu:
$ mkdir -p ~/.local/share/kio/servicemenus
Add a .desktop
file:
$ touch ~/.local/share/kio/servicemenus/hello.desktop
Open the hello.desktop
file in a text editor. A .desktop
file is a small configuration file used by the menu system of the Linux desktop. Here's a simple KServices file that generates a hello.txt
file in the directory you select:
[Desktop Entry]
Type=Service
MimeType=inode/directory;
Actions=Hello
[Desktop Action Hello]
Name=Say hello
Icon=/usr/share/icons/breeze-dark/actions/symbolic/file-library-symbolic.svg
Exec=touch %f/hello.txt
The first configuration block tells your system that this .desktop
file is a service rather than, for instance, an application.
The MimeType
tells the Plasma Desktop to only show this action as an option when you right-click on a folder, not a file.
The Actions
line identifies what action is taken when this service is activated. The name Hello
is arbitrary, and refers to the next configuration block, which is a Desktop Action
configuration with the name Hello
.
Here's what the next configuration block means:
The Desktop Action
definition named Hello
.
The values for Name
and Icon
appear in the right-click menu.
The Exec
line is the command you want to run when your service is selected. As a simple demonstration, this .desktop
file just creates an empty file called hello.txt
in the location that you right-clicked on (represented by the special variable %f
).
Save the .desktop
file, and then make it executable:
$ chmod +x ~/.local/share/kio/servicemenus/hello.desktop
Start a new instance of the Dolphin file manager and create an empty folder. Then right-click on the folder and navigate to Actions. In the Actions menu, there's a new service available, and it's called Say hello because that's what your .desktop
file has set in the Name
field.
(Seth Kenlon, CC BY-SA 4.0)
Look in the folder after running the service to see the empty hello.txt
file that's been created.
This sample KService only works on directories because the .desktop
file defining the service specifies the Mimetype: inode/directory
. That's what tells Dolphin not to display the service when you right-click on a file.
Using mimetypes, you can create highly specific services based on what kind of file system object you select when you right-click. The perl-file-mimeinfo
package provides a mimetype
command, which you can use to get the mimetype of any file. Install it with your distribution's package manager, and then try it out:
$ mimetype example.txt
example.txt: text/plain
$ mimetype Photos/example.webp
Photos/example.webp: image/webp
I demonstrated a simple "hello world" example in this article, but KServices can be as complex as you need them to be. The Exec
line of your KService .desktop
file can launch any application or script, and the %f
variable ensures that the target or destination of whatever gets launched is what you've right-clicked on.
For my own workflow, I used to use Planter to quickly construct a project environment. Lately, though, I've switched to Ansible and this KService:
[Desktop Entry]
Type=Service
MimeType=inode/directory;
Actions=planter
[Desktop Action planter]
Name=Create project directory
Icon=/usr/share/icons/breeze-dark/actions/symbolic/folder-new-symbolic.svg
Exec=ansible-playbook /home/seth/Ansible/playbooks/standard_dirs.yaml -e dir=%f
Here's my Ansible playbook:
---
- hosts: localhost
tasks:
- name: Create directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
with_items:
- '{{ dir }}/video'
- '{{ dir }}/edit'
- '{{ dir }}/audio'
- '{{ dir }}/title'
- '{{ dir }}/render'
- '{{ dir }}/graphic'
- '{{ dir }}/photo'
When I right-click on a directory and select Create project directory, the subdirectories I need for media projects are added to that directory. It's a simple feature for a desktop, and a little unique to a specific workflow, but it's the feature I want. And thanks to KServices, it's a feature I have. Try out KServices in the KDE Plasma Desktop for yourself, and add the feature you want.
Original article source at: https://opensource.com/
1676525700
KDE Plasma is one of the most popular desktop environments on Linux computers, taking inspiration from Windows and macOS and adding countless customization options on top. There’s now a new release that makes it even better.
Just in time for Free Software Day, the KDE community has released Plasma 5.27, the latest version of the desktop environment used in operating systems like Kubuntu, KDE Neon, openSUSE, and Fedora KDE. The best improvement might be the new tiling system, which allows you to set up custom tile layouts and resize adjacent windows simultaneously. It’s much more powerful than the window tiling features in Windows, but the feature is “still in its infancy” and might not work well for everyone.
This release also cleans up the System Settings app, improving organization and moving some options around. Customization has been a focus with KDE for years, but the massive collection of options can be intimidating for newcomers, so it’s nice to see some improvements there. The Discover app, which functions as the default app store and software manager, has also received a visual overhaul. There’s a new homepage design, the search is a bit better, and Steam Deck owners can now run system updates from the desktop.
There are many other improvements in Plasma 5.27, covering system widgets, the KRunner utility, the panel, multi-monitor support, and improvements to Wayland compositor support.
If you’re using a rolling-release Linux distribution, like KDE Plasma, you should get the new Plasma desktop as an update sometime soon. Other distributions, such as Kubuntu or Fedora, will likely wait until the next OS release to roll it out. For example, Kubuntu already has testing packages available for Plasma 5.27, and there’s a good chance that Kubuntu 23.04 Luna Lobster will ship with the update when it arrives in April.
Original article source at: https://www.howtogeek.com/
1676273460
ElectronMail is an Electron-based unofficial desktop client for ProtonMail. The app aims to provide enhanced desktop user experience enabling features that are not supported by the official in-browser web clients. It is written in TypeScript and uses Angular.
Open Source.
⚙️ Reproducible builds. See details in #183.
⚙️ Cross platform. The app works on Linux/OSX/Windows platforms. Binary installation packages located here.
🔎 Full-text search. Including email body content scanning capability. Enabled with v2.2.0 release. See the respective issue for details.
🔎 JavaScript-based/unlimited messages filtering. Enabled since v4.11.0 release. See the respective #257 for details. Requires local store feature to be enabled.
📦 Offline access to the email messages (attachments content not stored locally, but emails body content). The local store feature enables storing your messages in the encrypted database.bin
file (see FAQ for file purpose details). So the app allows you to view your messages offline, running full-text search against them, exporting them to EML/JSON files. etc. Enabled since v2.0.0 release.
📫 Multi accounts support including supporting individual API entry points. For example, you can force the specific email account added in the app connect to the email provider via the Tor only by selecting the Tor version 3 address
API entry point in the dropdown list and configuring a proxy as described in this message.
🔓 Automatic login into the app with a remembered the system keychain remembered master (keep me signed in feature). Integration with as a system keychain is done with the keytar module. By the way, on Linux KeePassXC implements the Secret Service interface and so it can be acting as a system keychain (for details, see the "automatic login into the app"-related point in the FAQ).
🔓 Automatic login into the email accounts, including filling 2FA tokens. Two auto-login delay scenarios supported in order to make it harder to correlate the identities, see the respective issue.
🔓 Persistent email account sessions. The feature introduced since v4.2.0 version with the experimental
label, #227. The feature enables the scenario when you to enter the account credentials on the login form only once, manually or automatically by the app, and then you never see the login form anymore for this email account even if you restart the app (unless you explicitly dropped the session in the admin area or it got dropped by the service due to the inactivity/expiration). If this feature is enabled for the account, manual credentials filling is the preferred option as a more secure option since you don't save the account credentials anywhere (credentials
are encrypted though even if saved, see settings.bin
file description in the FAQ).
🔐 Encrypted local storage with switchable predefined key derivation and encryption presets. Argon2 is used as the default key derivation function.
⚙️ Switchable accounts handle buttons positioning (top
, left
, left-thin
). See details in #36 and #175. Demo screenshots placed in the images folder (specifically this image).
📦 Batch emails export to EML files (attachments can optionally be exported in online / live
mode, not available in offline
mode since not stored locally). Feature released with v2.0.0-beta.4 version, requires local store feature to be enabled.
🔐 Built-in/prepackaged web clients. The prepackaged with the app proton web clients assembled from source code, see the respective official repositories. See 79 and 80 issues for details.
⚙️ Configuring proxy per account support. Enabled since v3.0.0 release. See 113 and 120 issues for details.
🌔 Dark mode support. See details in #242.
🔔 System tray icon with a total number of unread messages shown on top of it. Enabling local store improves this feature, see #30.
⚙️ Starting minimized to tray and closing to tray opt-out features.
🔔 Native notifications for individual accounts clicking on which focuses the app window and selects respective account in the accounts list.
📆 Calendar notifications / alarms regardless of the open page (mail/calendar/settings/account/drive). The opt-in feature has been enabled since v4.9.0. See #229 for details.
😎 Making all email "read" in a single mouse click. Enabled since v3.8.0. Requires local store feature to be enabled.
😎 Routing images through proxy. The opt-in feature has been enabled since v4.9.0. See #312 for details.
😎 Batch mails removing bypassing the trash. Enabled since v4.9.0. Requires local store feature to be enabled.
😎 Batch mails moving between folders. Enabled since v4.5.0. Requires local store feature to be enabled.
😎 Per-account custom CSS injection (per-account styling). Enabled since v4.10.0. See #355 for details.
📝 Spell Checking.
You got it here.
The reproducible builds idea is respected by the project. So the simplest way to prepare your own installation package from the source code is to clone the project. The respective GitHub Actions CI config file comes with the project.
nvm install 16
.nvm use 16
.npm
v7+, not the v6 (run npm -v
to see the version).Windows
: the simplest way to install all the needed stuff on Windows is to run npm install --global --production windows-build-tools
CLI command.Linux
: python
, make
and a C/C++ compiler toolchain, like GCC
are most likely already installed. Besides keytar needs libsecret
library to be installed.macOS
: python
and Xcode need to be installed. You also need to install the Command Line Tools
via Xcode, can be found under the Xcode -> Preferences -> Downloads
menu.yarn
to be available on your system. Additional setup is required if you run Windows, see.pnpm install --frozen-lockfile
(setting PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
environment variable might speed up the process).pnpm run app:dist
.pnpm run electron-builder:dist
command to build Windows/Mac OS X package and one of the following commands to build Linux package:pnpm run electron-builder:dist:linux:appimage
pnpm run electron-builder:dist:linux:deb
pnpm run electron-builder:dist:linux:freebsd
pnpm run electron-builder:dist:linux:pacman
pnpm run electron-builder:dist:linux:rpm
pnpm run electron-builder:dist:linux:snap
./dist
folder.To recap, considering that all the described build requirements are met, the short command to build let's say Arch Linux package will be pnpm install --frozen-lockfile && pnpm run app:dist && pnpm run electron-builder:dist:linux:pacman
.
If you want to backup the app data these are only files you need to take care of (files localed in the settings folder):
config.json
file keeps config parameters. There is no sensitive data in this file, so unencrypted.settings.bin
file keeps added to the app accounts including credentials if a user decided to save them. The file is encrypted with 32 bytes length key derived from the master password.database.bin
file is a local database that keeps fetched emails/folders/contacts entities if the local store
feature was enabled for at least one account. The file is encrypted with 32 bytes length key randomly generated and stored in settings.bin
. The app by design flushes and loads to memory the database.bin
file as a whole thing but not like encrypting only the specific columns of the database. It's of course not an optimal approach in terms of performance and resource consumption but it allows keeping the metadata hidden. You can see some details here.database-session.bin
file is being used in the same way and for the same purpose as database.bin
but it holds the current session data only. The data from this file will be merged to the database.bin
on the next app unlocking with the master password.session.bin
file holds the session data of the email accounts. The file is used if the Persistent Session
feature is enabled for at least one account (the feature introduced since v4.2.0 version with experimental
label, #227). The file is encrypted with 32 bytes length key randomly generated and stored in settings.bin
.log.log
file keeps log lines. The log level by default is set to error
(see config.json
file).It's recommended to perform the following actions before uninstalling the app:
Keep me signed in
feature enabled (see screenshot), click Log-out
action in the app menu (see screenshot). That will remove locally stored master password (done with node-keytar). You can also remove it having the app already uninstalled, but that would be a more complicated way as you will have to manually edit the system's keychain.Open setting folder
app/tray menu item (see screenshot) or reading app.getPath(name ="userData")
related app.getPath(name)
section here.The download page with Linux/OSX/Windows installation packages is here.
The way of verifying that the installation packages attached to the releases have been assembled from the source code is being provided.
Some package types are available for installing from the repositories (AUR/Pacman
and Snap
repositories are being maintained by @joshirio and MPR/Debian
repo by @hiddeninthesand)
Author: vladimiry
Source Code: https://github.com/vladimiry/ElectronMail
License: GPL-3.0 license
1676164500
Azul is a free, functional, reactive GUI framework for Rust, C and C++, built using the WebRender rendering engine and a CSS / HTML-like document object model for rapid development of beautiful, native desktop applications
Azul uses webrender (the rendering engine behind Firefox) to render your UI, so it supports lots of common CSS features like:
See the list of supported CSS keys / values for more info.
On top of that, Azul features...
* static linking not yet available
** C++ bindings and Python are not yet stabilized and might not work depending on the branch you're using. They will be stabilized before the release.
from azul import *
class DataModel:
def __init__(self, counter):
self.counter = counter
def render_dom(data, info):
label = Dom.text("{}".format(data.counter))
label.set_inline_style("font-size: 50px;")
button = Button("Increment counter")
button.set_on_click(data, increment_counter)
dom = Dom.body()
dom.add_child(label)
dom.add_child(button.dom())
return dom.style(Css.empty())
def increment_counter(data, info):
data.counter += 1;
return Update.RefreshDom
app = App(DataModel(5), AppConfig(LayoutSolver.Default))
app.run(WindowCreateOptions(render_dom))
use azul::prelude::*;
use azul::widgets::{button::Button, label::Label};
struct DataModel {
counter: usize,
}
extern "C"
fn render_dom(data: &mut RefAny, _: &mut LayoutInfo) -> StyledDom {
let data = data.downcast_ref::<DataModel>()?;
let label = Dom::text(format!("{}", data.counter))
.with_inline_style("font-size: 50px;");
let button = Button::new("Increment counter")
.onmouseup(increment_counter, data.clone());
Dom::body()
.with_child(label)
.with_child(button.dom())
.style(Css::empty())
}
extern "C"
fn increment_counter(data: &mut RefAny, _: &mut CallbackInfo) -> Update {
let mut data = data.downcast_mut::<DataModel>()?;
data.counter += 1;
Update::RefreshDom // call render_dom() again
}
fn main() {
let initial_data = RefAny::new(DataModel { counter: 0 });
let app = App::new(initial_data, AppConfig::default());
app.run(WindowCreateOptions::new(render_dom));
}
#include "azul.h"
typedef struct {
uint32_t counter;
} DataModel;
void DataModel_delete(DataModel* restrict A) { }
AZ_REFLECT(DataModel, DataModel_delete);
AzStyledDom render_dom(AzRefAny* data, AzLayoutInfo* info) {
DataModelRef d = DataModelRef_create(data);
if !(DataModel_downcastRef(data, &d)) {
return AzStyledDom_empty();
}
char buffer [20];
int written = snprintf(buffer, 20, "%d", d->counter);
AzString const labelstring = AzString_copyFromBytes(&buffer, 0, written);
AzDom label = AzDom_text(labelstring);
AzString const inline_css = AzString_fromConstStr("font-size: 50px;");
AzDom_setInlineStyle(&label, inline_css);
AzString const buttontext = AzString_fromConstStr("Increment counter");
AzButton button = AzButton_new(buttontext, AzRefAny_clone(data));
AzButton_setOnClick(&button, incrementCounter);
AzDom body = Dom_body();
AzDom_addChild(body, AzButton_dom(&button));
AzDom_addChild(body, label);
AzCss global_css = AzCss_empty();
return AzDom_style(body, global_css);
}
Update incrementCounter(RefAny* data, CallbackInfo* event) {
DataModelRefMut d = DataModelRefMut_create(data);
if !(DataModel_downcastRefMut(data, &d)) {
return Update_DoNothing;
}
d->ptr.counter += 1;
DataModelRefMut_delete(&d);
return Update_RefreshDom;
}
int main() {
DataModel model = { .counter = 5 };
AzApp app = AzApp_new(DataModel_upcast(model), AzAppConfig_default());
AzApp_run(app, AzWindowCreateOptions_new(render_dom));
return 0;
}
Author: fschutt
Source Code: https://github.com/fschutt/azul
License: MPL-2.0 and 3 other licenses found
1676104581
ChatGPT Desktop Application (Mac, Windows and Linux)
ChatGPT_0.10.3_x64_en-US.msi: Direct download installer
Use winget:
# install the latest version
winget install --id=lencx.ChatGPT -e
# install the specified version
winget install --id=lencx.ChatGPT -e --version 0.10.0
Note: If the installation path and application name are the same, it will lead to conflict (#142)
.app
installerbrew tap lencx/chatgpt https://github.com/lencx/ChatGPT.git
brew install --cask chatgpt --no-quarantine
repo = "lencx/chatgpt"
tap repo, "https://github.com/#{repo}.git"
cask "chatgpt", args: { "no-quarantine": true }
.deb
installer, advantage small size, disadvantage poor compatibility.deb
fails to runchatgpt-desktop-bin
, and you can use your favourite AUR package manager to install it.chatgpt-desktop-git
.This is a major and exciting update. It works like a Telegram bot command
and helps you quickly populate custom models to make chatgpt work the way you want it to. This project has taken a lot of my spare time, so if it helps you, please help spread the word or star it would be a great encouragement to me. I hope I can keep updating it and adding more interesting features.
You can look at awesome-chatgpt-prompts to find interesting features to import into the app. You can also use Sync Prompts
to sync all in one click, and if you don't want certain prompts to appear in your slash commands, you can disable them.
/
to bring up the command prompt, press the spacebar, and it will fill the input area with the text associated with the command by default (note: if it contains multiple command prompts, it will only select the first one as the fill, you can keep typing until the first prompted command is the one you want, then press the spacebar.{q}
tag (only single changes are supported #54). Use the keyboard ⇧
(arrow up) and ⇩
(arrow down) keys to select the slash command.
macOS
Linux
Windows
Theme
- Light
, Dark
, System
(Only macOS and Windows are supported).Stay On Top
: The window is stay on top of other windows.Titlebar
: Whether to display the titlebar, supported by macOS only.Hide Dock Icon
(#35): Hide application icons from the Dock(support macOS only).Show Dock Icon
in the menu item to re-display the application icon in the Dock (SystemTrayMenu -> Show Dock Icon
).Inject Script
: Using scripts to modify pages.Control Center
: The control center of ChatGPT application, it will give unlimited imagination to the application.Theme
, Stay On Top
, Titlebar
, ...User Agent
(#17): Custom user agent
, which may be required in some scenarios. The default value is the empty string.Switch Origin
(#14): Switch the site source address, the default is https://chat.openai.com
, please make sure the mirror site UI is the same as the original address. Otherwise, some functions may not be available.Go to Config
: Open the configuration file directory (path: ~/.chatgpt/*
).Clear Config
: Clear the configuration file (path: ~/.chatgpt/*
), dangerous operation, please backup the data in advance.Restart ChatGPT
: Restart the application, for example: the program is stuck or the injection script can take effect by restarting the application after editing.Awesome ChatGPT
: Recommended Related Resources.Undo
, Redo
, Cut
, Copy
, SelectAll
, ...Go Back
, Go Forward
, Scroll to Top of Screen
, Scroll to Bottom of Screen
, Refresh the Screen
, ...Update Log
: ChatGPT changelog.Report Bug
: Report a bug or give feedback.Toggle Developer Tools
: Developer debugging tools.Platform | Path |
---|---|
Linux | /home/lencx/.chatgpt |
macOS | /Users/lencx/.chatgpt |
Windows | C:\Users\lencx\.chatgpt |
[.chatgpt]
- application configuration root folderchat.conf.json
- preferences configurationchat.awesome.json
- Custom URL lists, similar to browser bookmarks. Any URL can be used as the main window or tray window (Control Conter -> Awesome)chat.model.json
- prompts configuration,contains three parts:user_custom
- Requires manual data entry (Control Conter -> Language Model -> User Custom)sync_prompts
- Synchronizing data from f/awesome-chatgpt-prompts (Control Conter -> Language Model -> Sync Prompts)sync_custom
- Synchronize custom json and csv file data, support local and remote (Control Conter -> Language Model -> Sync Custom)chat.model.cmd.json
- filtered (whether to enable) and sorted slash commands[cache_model]
- caching model datachatgpt_prompts.json
- Cache sync_prompts
datauser_custom.json
- Cache user_custom
dataae6cf32a6f8541b499d6bfe549dbfca3.json
- Randomly generated file names, cache sync_custom
data4f695d3cfbf8491e9b1f3fab6d85715c.json
- Randomly generated file names, cache sync_custom
databd1b96f15a1644f7bd647cc53073ff8f.json
- Randomly generated file names, cache sync_custom
dataCurrently, only json and csv are supported for synchronizing custom files, and the following formats need to be met, otherwise the application will be abnormal:
JSON format:
[
{
"cmd": "a",
"act": "aa",
"prompt": "aaa aaa aaa"
},
{
"cmd": "b",
"act": "bb",
"prompt": "bbb bbb bbb"
}
]
CSV format
"cmd","act","prompt"
"a","aa","aaa aaa aaa"
"b","bb","bbb bbb bbb"
Control Center
enhancementPop-up Search
enhancementIf you cannot open the application after the upgrade, please try to clear the configuration file, which is in the ~/.chatgpt/*
directory.
If you have already logged in in the main window, but the system tray window shows that you are not logged in, you can fix it by restarting the application (Menu -> Preferences -> Restart ChatGPT
).
It's safe, just a wrapper for OpenAI ChatGPT website, no other data transfer exists (you can check the source code).
# step1:
git clone https://github.com/lencx/ChatGPT.git
# step2:
cd ChatGPT
# step3: install deps
yarn
# step4:
yarn dev
# step5:
# bundle path: src-tauri/target/release/bundle
yarn build
Author: lencx
Source Code: https://github.com/lencx/ChatGPT
License: Apache-2.0 license
1673925120
ChatGPT Desktop Application (Mac, Windows and Linux)
# install the latest version
winget install --id=lencx.ChatGPT -e
# install the specified version
winget install --id=lencx.ChatGPT -e --version 0.9.0
Note: If the installation path and application name are the same, it will lead to conflict (#142)
.app
installerbrew tap lencx/chatgpt https://github.com/lencx/ChatGPT.git
brew install --cask chatgpt --no-quarantine
repo = "lencx/chatgpt"
tap repo, "https://github.com/#{repo}.git"
cask "chatgpt", args: { "no-quarantine": true }
.deb
installer, advantage small size, disadvantage poor compatibility.deb
fails to runchatgpt-desktop-bin
, and you can use your favourite AUR package manager to install it.This is a major and exciting update. It works like a Telegram bot command
and helps you quickly populate custom models to make chatgpt work the way you want it to. This project has taken a lot of my spare time, so if it helps you, please help spread the word or star it would be a great encouragement to me. I hope I can keep updating it and adding more interesting features.
You can look at awesome-chatgpt-prompts to find interesting features to import into the app. You can also use Sync Prompts
to sync all in one click, and if you don't want certain prompts to appear in your slash commands, you can disable them.
/
to bring up the command prompt, press the spacebar, and it will fill the input area with the text associated with the command by default (note: if it contains multiple command prompts, it will only select the first one as the fill, you can keep typing until the first prompted command is the one you want, then press the spacebar.{q}
tag (only single changes are supported #54). Use the keyboard ⇧
(arrow up) and ⇩
(arrow down) keys to select the slash command.
macOS
Linux
Windows
Theme
- Light
, Dark
, System
(Only macOS and Windows are supported).Stay On Top
: The window is stay on top of other windows.Titlebar
: Whether to display the titlebar, supported by macOS only.Hide Dock Icon
(#35): Hide application icons from the Dock(support macOS only).Show Dock Icon
in the menu item to re-display the application icon in the Dock (SystemTrayMenu -> Show Dock Icon
).Inject Script
: Using scripts to modify pages.Control Center
: The control center of ChatGPT application, it will give unlimited imagination to the application.Theme
, Stay On Top
, Titlebar
, ...User Agent
(#17): Custom user agent
, which may be required in some scenarios. The default value is the empty string.Switch Origin
(#14): Switch the site source address, the default is https://chat.openai.com
, please make sure the mirror site UI is the same as the original address. Otherwise, some functions may not be available.Go to Config
: Open the configuration file directory (path: ~/.chatgpt/*
).Clear Config
: Clear the configuration file (path: ~/.chatgpt/*
), dangerous operation, please backup the data in advance.Restart ChatGPT
: Restart the application, for example: the program is stuck or the injection script can take effect by restarting the application after editing.Awesome ChatGPT
: Recommended Related Resources.Undo
, Redo
, Cut
, Copy
, SelectAll
, ...Go Back
, Go Forward
, Scroll to Top of Screen
, Scroll to Bottom of Screen
, Refresh the Screen
, ...Update Log
: ChatGPT changelog.Report Bug
: Report a bug or give feedback.Toggle Developer Tools
: Developer debugging tools.Platform | Path |
---|---|
Linux | /home/lencx/.chatgpt |
macOS | /Users/lencx/.chatgpt |
Windows | C:\Users\lencx\.chatgpt |
[.chatgpt]
- application configuration root folderchat.conf.json
- preferences configurationchat.model.json
- prompts configuration,contains three parts:user_custom
- Requires manual data entry (Control Conter -> Language Model -> User Custom)sync_prompts
- Synchronizing data from f/awesome-chatgpt-prompts (Control Conter -> Language Model -> Sync Prompts)sync_custom
- Synchronize custom json and csv file data, support local and remote (Control Conter -> Language Model -> Sync Custom)chat.model.cmd.json
- filtered (whether to enable) and sorted slash commands[cache_model]
- caching model datachatgpt_prompts.json
- Cache sync_prompts
datauser_custom.json
- Cache user_custom
dataae6cf32a6f8541b499d6bfe549dbfca3.json
- Randomly generated file names, cache sync_custom
data4f695d3cfbf8491e9b1f3fab6d85715c.json
- Randomly generated file names, cache sync_custom
databd1b96f15a1644f7bd647cc53073ff8f.json
- Randomly generated file names, cache sync_custom
dataCurrently, only json and csv are supported for synchronizing custom files, and the following formats need to be met, otherwise the application will be abnormal:
JSON format:
[
{
"cmd": "a",
"act": "aa",
"prompt": "aaa aaa aaa"
},
{
"cmd": "b",
"act": "bb",
"prompt": "bbb bbb bbb"
}
]
CSV format
"cmd","act","prompt"
"a","aa","aaa aaa aaa"
"b","bb","bbb bbb bbb"
Control Center
enhancementPop-up Search
enhancementIf you cannot open the application after the upgrade, please try to clear the configuration file, which is in the ~/.chatgpt/*
directory.
If you have already logged in in the main window, but the system tray window shows that you are not logged in, you can fix it by restarting the application (Menu -> Preferences -> Restart ChatGPT
).
It's safe, just a wrapper for OpenAI ChatGPT website, no other data transfer exists (you can check the source code).
# step1:
git clone https://github.com/lencx/ChatGPT.git
# step2:
cd ChatGPT
# step3: install deps
yarn
# step4:
yarn dev
# step5:
# bundle path: src-tauri/target/release/bundle
yarn build
Supporter Benefits (visible to your supporters and members only) - Share tips for using ChatGPT desktop application and next steps.
Author: lencx
Source Code: https://github.com/lencx/ChatGPT
License: Apache-2.0 license
1670908440
Online or desktop ERD tool – are you puzzled about which one to choose? Read on to understand which one is best suited for your organization.
ER DIAGRAMS (ERDS, OR ENTITY RELATIONSHIP DIAGRAMS) are CRUCIAL IN DATABASE PROJECTS, so choosing the right ERD tool is vital. Building a database system without an ER diagram is like building a skyscraper without a foundation.
ER diagram tools are some of the most important among all the TOOLS USED IN A DATABASE PROJECT. There are many good online and desktop tools available in the market, but you should know WHICH ERD TOOL IS BEST SUITED FOR YOUR PROJECT.
You can choose an ONLINE ERD TOOL and model your data immediately without any installation or setup. If you select a desktop tool, you need to install it on your desktop and model the data offline. Database architects choose tools from one of these two types for modeling their data based on the requirements of their projects.
Let's discuss the pros and cons of these two types to understand which is better suited for your project.
There are many online and desktop ERD tools available with essential features for data modeling. Features such as clean and user-friendly interfaces, notation capabilities, and reverse and forward engineering come with most online and desktop ER diagram drawing tools. Many support different DBMSS (DATABASE MANAGEMENT SYSTEMS).
Each type has its unique set of features. Like with other online tools, you don't need to install online ERD tools on your device. You only need an Internet connection and a browser. You can use an online tool on any device on any platform.
On the other hand, if you select a desktop tool, you have to install and set it up before starting your work. You have to consider the compatibility of your ERD tool with the hardware and other software on your device. And it consumes your local storage capacity.
Online tools have auto-save options to save your work automatically. If your device shuts down for any reason, you don't have to worry about the work done. If your device crashes or if your computer's hard disk dies, you do not lose your data models if you use an online ERD tool. They are stored in cloud storage securely, and the cloud infrastructure makes automatic backups and ensures the security and availability of your data.
In contrast, if you use a desktop ER diagram tool, you need to think about the internal IT infrastructure. You need a team to manage your IT infrastructure for backups, data security, and hardware.
With an online tool, you don't have to worry about having to update your tool manually. You work on the latest version all the time, and your data models are updated to the newest version. When you use a desktop tool, you have to think about updates, fixes, and compatibility of your diagrams with the latest versions of the tool.
Features like data model sharing, collaboration with your team, and version controlling are available with online ERD tools. They are not that easy with desktop tools. That said, some desktop tools can integrate with a cloud platform, with features like model sharing and collaboration with teams, version controlling, auto-save, automatic backups, etc.
Typically, online ERD tools come as SaaS (software-as-a-service) tools. Since it is a subscription-based service, you can start your data modeling by investing less money.
With desktop applications, you have to invest more in software licenses up front before starting your work. However, some organizations prefer spending money only once on an ERD tool rather than having ongoing subscriptions. Desktop tools often better suit such organizations by their financial requirements.
If you have a desktop ERD tool, your device does not need to be connected to the Internet every time. You can model your data offline. With online tools, you have to be connected to use the tool.
Let's see a few examples of online and offline ERD tools and explore their features.
VERTABELO is an online ERD tool that supports many DBMSs like MySQL, SQL Server, PostgreSQL, and Oracle.
As you can see in the image above, Vertabelo has a clean and modern user interface for modeling your data. It is responsive and supports all the essential and popular notations for drawing your logical and physical ER diagram, including crow's foot, IDEF1X, and UML.
Vertabelo has an automated feature for creating your physical ER diagram from a logical one. It validates your ER diagrams against general database constraints as well as against the DBMS selected. You can learn more about VERTABELO LIVE MODEL VALIDATION.
As an online ER diagram tool, Vertabelo has valuable features to facilitate COLLABORATION in your project team. You can share your data models with your team members by setting their email addresses at different access levels: Owner, Editor, or Viewer. Your team can work on the same data model at the same time; for example, one person can edit while others view. Changes are saved immediately with the auto-save option and are visible to others simultaneously. You can also share the models with your customers and partners who do not have Vertabelo accounts with a public link to your model through email. Read more on SHARING YOUR DATA MODELS ON VERTABELO.
This ERD tool does version control of your data model with built-in features and with Git. Learn more about VERTABELO'S BUILT-IN VERSION CONTROL and VERSION CONTROL WITH GIT.
As your perfect online data modeling tool, Vertabelo provides you with two additional important features: forward engineering and reverse engineering of your data model. You can GENERATE SQL SCRIPTS for creating or removing database elements in supported DBMSs with the forward engineering feature. With the REVERSE ENGINEERING feature, you can import an existing database and make changes in this user-friendly graphical tool.
SQLDBM is an online ERD tool that supports many DBMSs such as MySQL, SQL Server, and Amazon Redshift. It supports popular notations like crow's foot and IDEF1X for modeling your data from conceptual to physical models.
As an online tool, SqlDBM facilitates collaborative work on different platforms. You can share your data models with your team members by providing their email addresses and changing access levels by checking or unchecking the options.
SqlDBM has a version control feature for maintaining different versions of your diagram. You can also compare changes with the Compare Revisions feature. It has other important features like forward engineering for creating DDL scripts from a physical model and reverse engineering for creating a data model from a physical database for doing revisions visually.
ERDPLUS is an online ER diagram tool that supports drawing all levels of data models. You can use notations like crow's foot, and it lets you generate SQL DDL files for creating your physical database from a physical data model (relational schema).
ERDPlus supports many DBMSs such as MySQL, SQL Server, Oracle, and IBM DB2. Like other online ERD tools, it makes your data models available to you from anywhere on any device or any platform.
VISUAL PARADIGM has an online version with different sets of notations for creating various kinds of diagrams. As an ER diagram tool, it supports many DBMSs such as MySQL, Oracle, SQL Server, Sybase, SQLite, HSQL, and MariaDB.
It comes with notations like crow's foot for creating your conceptual to physical data models. The Table Record Editor feature of this tool lets you enter sample data and understand the data format to be entered later. The automated Model Transitor feature helps you create your logical and physical models from conceptual and logical models, respectively, and maintain traceability between these models.
Like other online ER diagram drawing tools, Visual Paradigm has many valuable features for working remotely and collaboratively. Your data models are available anytime from anywhere and on any platform. It provides features for team collaboration and sharing your work among the members quickly. These features include the cloud workspace, committing and updating projects, branching, tagging, and revision archiving such as browsing history and roll-back. Everyone can work simultaneously. When a user makes changes and commits them to the repository, the changes are merged to the original document (not overwritten) and visible to everyone.
Visual Paradigm’s built-in tool improves team communication about your data models. Its Online Diagram Browser helps share your data models with stakeholders for them to comment, review designs, give approvals, etc.
Visual Paradigm can generate DDL files for creating your physical database from a physical data model as well as generate SQL scripts for patching changes to the database. You can also generate a physical data model from a physical database with its reverse engineering feature.
MYSQL WORKBENCH is an offline ERD tool that supports data modeling, database development, maintenance, and many other database activities for MySQL. It supports all the essential notations for drawing your ER diagrams and validates your diagrams against MySQL constraints.
This tool comes in Windows, Linux, and macOS versions for you to install on your devices. However, as its name suggests, it only supports the MySQL DBMS.
This data modeler's forward engineering feature generates a DDL script for creating your MySQL database from a physical data model. Conversely, its reverse engineering feature can generate an ER diagram from an existing MySQL database or SQL script.
MySQL Workbench is suitable for individual work in MySQL data modeling. However, because this tool is an offline ERD tool, it does not support activities like model sharing, simultaneous work, etc., for collaborating with your team. Furthermore, this tool does not generate portable data models across different DBMSs because it is only for MySQL.
ASTAH PROFESSIONAL is a multi-diagramming tool that supports various diagrams such as ERDs, flowcharts, UML diagrams, DFDs, etc. This tool comes in Windows, macOS, Ubuntu, and CentOS versions. You need to download the version compatible with the operating system of your computer and install it before you start modeling.
As an ER diagram drawing tool, Astah Professional supports the IDEF1X and crow's foot notations. You can use its reverse engineering feature to generate your ER diagram from an existing database. And you can use its SQL Export feature to export entities of your ER diagram to SQL (SQL-92).
This tool is suitable for individual work in data modeling offline as it does not support collaborative work. You can't share your data models with your team, nor does it support concurrent work on your diagrams.
Many good ERD tools that are popular among database specialists today come as either online or desktop tools. They have standard features as well as features unique to each type based on its nature.
Don’t focus on who the developer of the tool is, be it an online or desktop tool. Instead, think about how the tool can help you achieve your database project goals, considering all financial and technical factors.
Suppose your project is large and complicated and needs concurrent work with a project team. In that case, an online ER diagram tool is the best match for your project. With an online tool, your team can work together on large and complex data models with easy options for model sharing, collaboration, version control, etc.
On the other hand, you may want to invest in your ERD tool just once. Your projects may not be that complex, small enough for one person to handle each data model. You may need a solution that is highly customized to your preferences. Maybe you have an internal IT team that manages the infrastructure aspects. In these cases, a desktop ERD tool may better fit your organization.
Let's move forward; it's your call!
Original article source at: https://www.vertabelo.com/
1669254749
In this article, we will learn together what is Desktop as a Service (DaaS)? Microsoft wants your desktop to run on the cloud and, thanks to the COVID-19 pandemic, they may just be successful sooner than you might think.
Unprecedented conditions surrounding COVID-19 and the accompanying global pandemic have left many organizations to leverage virtual desktops. Some businesses have discovered that workforce productivity has increased due to remote work. These businesses are likely to adopt Desktop as a Service (DaaS) going forward. There are valid concerns on security, data privacy and compliance. However, Microsoft’s DAAS service solution isn’t only for remote work but also for an easy and secure way to access the information they need on their devices to boost employee efficiency.
Desktop as a Service (DaaS) is a software technology that offers virtual desktops to end-users over the Internet.
Two kinds of desktops are available in DaaS, they are:
Desktop as service is hosted in the cloud, they must be accessed over the internet. If an organization experience an internet outage, employees will not be able to access their desktops and may experience poor virtual desktop performance.
With Desktop as a Service (DaaS), the cloud services provider hosts the infrastructure, network resources, and storage within the cloud, from which the user can access the desktop’s data and applications via an internet browser or other software. Through a subscription model, businesses can purchase as many virtual desktops as they need.
The way desktop applications are streamed over the Internet from a centralised server has been altered by new technology. Applications such as CAD, which require a massive amount of computer power to display quickly, can now be easily run on DaaS. When the workload on one server becomes too great, IT administrators can quickly move a running virtual machine from one physical server to another. This technology can be used in a variety of industries, including engineering, design, and architecture.
You can use DaaS implementations for any purpose but, these services can provide some additional benefits for the following use cases:
There are many reasons why businesses are now looking at DaaS solutions.
With everyone working from home, managing remote employees can be challenging as they use different devices, OS, to access company data. This can cause serious security issues for the companies.
DaaS provides a centrally managed, cloud-based remote working environment that solves most of these challenges.
Also Read: Microsoft Azure: Benefits, Use Cases, Applications | What is Microsoft Azure?
FEATURES | VDI | DaaS |
Cost | Typically a perpetual license per use | Subscription-based model |
Management | IT department handles desktop maintenance, security, etc. | The provider handles security, network, etc. |
Infrastructure | OS hosted in “on-premises data centre” | OS hosted by the cloud service provider |
Device flexibility | No dedicated server environment | More flexibility and quickly spin up desktops to users on a variety of devices. |
Security | Many companies won’t host confidential data in the public cloud | Daas service is easy to host as it can be upgraded or restore the lost patches easily. |
Microsoft on Aug 02, 2021, Published “Windows 365”, its newest desktop-as-as-service product.
Microsoft has described Windows 365 as a “cloud service that introduces a new way to experience Windows 10 or Windows 11 … to businesses of all sizes”.
Windows 365 is a new SaaS from Microsoft that combines the power, security, and convenience of the cloud with the simplicity of a client PC.
According to Microsoft, Windows 365 would allow users to “securely access their apps, settings, and content, at any time to any device.”
In simple terms, Windows 365 is like Office 365, where you can use this on any modern browser, like Google Chrome, Mozilla Firefox, Microsoft Edge, and Apple Safari.
Windows 365 is strictly an enterprise offering and not for retail users. Businesses of all sizes are eligible to sign up.
According to Microsoft chairman and CEO Satya Nadella, Windows 365 would provide “organizations with greater flexibility and a secure way to empower their workforce to be more productive and connected, regardless of location.”
With cybersecurity threats on the rise, you expect nothing less from Microsoft. Your information in windows 365 is stored in the cloud and not on the device, making it highly secure. According to the company, the product is “secure by design” and built with the principles of Zero Trust.
The Windows 365 setup process is relatively easy but it requires professional IT managers to deploy it using enterprise tools like Microsoft Endpoint Manager.
You can check out the video below to get a closer look at how to set up the Windows 365 cloud PC for your team.
One can use windows 365 on Windows PCs, Macs, Linux computers, Chromebooks, iPhones, iPads, Android smartphones, and tablet PCs.All you need is a modern web browser like Chrome, Firefox, Microsoft Edge, Safari, Opera, etc.
Microsoft is yet to announce anything on the pricing front. Windows 365 will be available to businesses of all sizes starting from August 2, 2021. We will update this article with more pricing-related details once the service goes live next month.
For more details on pricing check out the official website: Microsoft 365 price.
With this, we came to an end of the article on “What’s Desktop-as-a-Service”. I hope it clears all your doubts and queries. To help you strengthen your knowledge of the core cloud computing platforms, take a look at Great Learning’s comprehensive PGP-Cloud Computing program.
Original article source at: https://www.mygreatlearning.com
1667091720
GitHub Desktop is an open source Electron-based GitHub app. It is written in TypeScript and uses React.
Download the official installer for your operating system:
You can install this alongside your existing GitHub Desktop for Mac or GitHub Desktop for Windows application.
Linux is not officially supported; however, you can find installers created for Linux from a fork of GitHub Desktop in the Community Releases section.
NOTE: There is no current migration path to import your existing repositories into the new application - you can drag-and-drop your repositories from disk onto the application to get started.
Want to test out new features and get fixes before everyone else? Install the beta channel to get access to early builds of Desktop:
The release notes for the latest beta versions are available here.
There are several community-supported package managers that can be used to install GitHub Desktop:
c:/> winget install github-desktop
or Chocolatey c:\> choco install github-desktop
$ brew install --cask github
Installers for various Linux distributions can be found on the shiftkey/desktop
fork.
Arch Linux users can install the latest version from the AUR.
This document describes the focus of GitHub Desktop and who the product is most useful for.
And to see what the team is working on currently and in the near future, check out the GitHub Desktop roadmap.
Note: The GitHub Desktop Code of Conduct applies in all interactions relating to the GitHub Desktop project.
First, please search the open issues and closed issues to see if your issue hasn't already been reported (it may also be fixed).
There is also a list of known issues that are being tracked against Desktop, and some of these issues have workarounds.
If you can't find an issue that matches what you're seeing, open a new issue, choose the right template and provide us with enough information to investigate further.
If nobody has responded to your issue in a few days, you're welcome to respond to it with a friendly ping in the issue. Please do not respond more than a second time if nobody has responded. The GitHub Desktop maintainers are constrained in time and resources, and diagnosing individual configurations can be difficult and time consuming. While we'll try to at least get you pointed in the right direction, we can't guarantee we'll be able to dig too deeply into any one person's issue.
The CONTRIBUTING.md document will help you get setup and familiar with the source. The documentation folder also contains more resources relevant to the project.
If you're looking for something to work on, check out the help wanted label.
To get your development environment set up for building Desktop, see setup.md.
See desktop.github.com for more product-oriented information about GitHub Desktop.
See our getting started documentation for more information on how to set up, authenticate, and configure GitHub Desktop.
Author: Desktop
Source Code: https://github.com/desktop/desktop
License: MIT license
1666810260
Make any website your Mac desktop wallpaper
Plash enables you to have a highly dynamic desktop wallpaper. You could display your favorite news site, Facebook feed, or a random beautiful scenery photo. The use-cases are limitless. You could even set an animated GIF as wallpaper. You can even add multiple websites and easily switch between them.
Requires macOS 12 or later.
Older versions
You can interact with the website by enabling “Browsing Mode”. When in this mode, you can right-click to be able to go back/forward, reload, and zoom in the page contents (the zoom level is saved). You can also pinch to magnify. This is different from zooming the page contents in that it will zoom in to a specific part of the page instead of just enlarging everything.
Plash injects a CSS class named plash-is-browsing-mode
on the <html>
element while browsing mode is active. You could use this class to customize the website for browsing mode.
If clicking a link opens it in a new window, you can hold the Option key while clicking the link to open it in the main Plash window.
To zoom in the website, activate “Browsing Mode”, right-click the website, and then select “Zoom In”.
Use [[screenWidth]]
and [[screenHeight]]
in any URL and Plash will substitute the right values for you. For example, https://source.unsplash.com/random/[[screenWidth]]x[[screenHeight]]?puppy
.
You can scroll a website to a specific position each time it is loaded by putting the following in the website's “JavaScript” field. Adjust the “500” to how far down it should scroll.
window.scrollTo(0, 500);
You can also scroll to a specific element matching a CSS selector:
document.querySelector('.title')?.scrollIntoView();
You can use the “CSS” field in the website settings to adjust the padding of the website:
:root {
margin-left: 50% !important;
}
Plash injects a CSS class named is-plash-app
on the <html>
element. You could use this class to customize your website for Plash. For example, if your website has instructions on how to use it in Plash, you could hide those when it's running in Plash.
You can control Plash using anything that supports opening a URL with a custom scheme.
For example, to reload the current website, run this terminal command:
$ open -g plash:reload
Plash comes bundled with a share extension. You can, for example, use it to quickly add a website you have open in Safari to Plash.
add
Add a website to Plash.
You can optionally specify a title. If no title is given, a title will be automatically fetched from the website.
$ open -g 'plash:add?url=https://sindresorhus.com/plash&title=Plash%20website'
Don't forget to correctly encode query parameters.
Note: Local file URLs are not supported.
reload
Reload the current website.
$ open -g plash:reload
next
Switch to the next website in the list.
$ open -g plash:next
previous
Switch to the previous website in the list.
$ open -g plash:previous
random
Switch to a random website in the list.
It will never show the same website twice in a row, unless you only have a single website.
$ open -g plash:random
toggle-browsing-mode
Toggle browsing mode.
$ open -g plash:toggle-browsing-mode
import {execFileSync} from 'node:child_process';
execFileSync('open', ['--background', 'plash:reload']);
import Cocoa
let command = "plash:reload"
let configuration = NSWorkspace.OpenConfiguration()
configuration.activates = false
NSWorkspace.shared.open(URL(string: command)!, configuration: configuration)
do shell script "open --background 'plash:reload'"
import subprocess
subprocess.run(['open', '--background', 'plash:reload'])
macOS hides menu bar apps when there is no space left in the menu bar. This is a common problem on MacBooks with a notch. Try quitting some menu bar apps to free up space. If this does not solve it, try quitting Bartender if you have it installed.
Plash can be automated with the built-in Shortcuts app, for example, using the “Switch to Next Website” action. Shortcuts on macOS 12 does not yet support automations, but for now, you can use the Shortery app.
Support for multiple displays is currently limited to the ability to choose which display to show the website on. Support for setting a separate website for each display is planned.
However, I there is a workaround.
Plash uses very little memory. Usually around 40 MB. However, the websites you display can take up a lot of memory, and sometimes even have a memory leaks.
Not built-in, but you can block ads system-wide with a DNS ad-blocker.
Make a shortcut in the Shortcuts app that uses the “Set Current Website” action and then set a keyboard shortcut for the shortcut.
I don't have any immediate plans to localize the app.
Author: Sindresorhus
Source Code: https://github.com/sindresorhus/Plash
License: MIT license
1665570420
Flutter allows you to build beautiful native apps on iOS and Android from a single codebase.
This unofficial project brings Flutter to the desktop through the power of Go and GLFW.
The flutter engine itself doesn't know how to deal with desktop platforms (eg handling mouse/keyboard input). Instead, it exposes an abstraction layer for whatever platform to implement. This project implements the Flutter's Embedding API using a single code base that runs on Windows, macOS, and Linux. For rendering, GLFW fits the job because it provides the right abstractions over the OpenGL's Buffer/Mouse/Keyboard for each platform.
The choice of Golang comes from the fact that it has the same tooling on every platform. Plus Golang is a great language because it keeps everything simple and readable, which makes it easy to build cross-platform plugins.
The best way to get started is to install hover, the official go-flutter tool to set up, build and run Flutter apps on the desktop, including hot-reload.
Read the hover tutorial to run your app on the desktop, or start with one of our example apps.
If you want more in-depth information about go-flutter, read the wiki.
Are you missing a feature? Open an issue!
A separate repository contains example Flutter apps that also run on the desktop. Go to github.com/go-flutter-desktop/examples to give them a try.
Some popular plugins are already implemented over at github.com/go-flutter-desktop/plugins. If you have implemented a plugin that you would like to share, feel free to open a PR on the plugins repository!
For a detailed tutorial on how to create a plugin, read the wiki.
Flutter itself is a relatively young project. Its framework and engine are updated often. The go-flutter project tries to stay compatible with the beta channel of Flutter.
Updating Go is simple and Go seldomly has backwards-incompatible changes. This project remains compatible with the latest Go stable release.
This project uses go-gl/glfw for GLFW v3.3.
Author: Go-flutter-desktop
Source Code: https://github.com/go-flutter-desktop/go-flutter
License: BSD-3-Clause license