Skip to content

Commit

Permalink
🚀 v1.0.0+4 released.
Browse files Browse the repository at this point in the history
V1.0.0+4 update
  • Loading branch information
omegaui authored Oct 14, 2023
2 parents 32333a1 + a4e40e9 commit 093a311
Show file tree
Hide file tree
Showing 65 changed files with 1,429 additions and 328 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## v1.0.0+4

- Dark Mode Support + System Theme Detection
- User Preferences Dialog
- Option to mark a workspace as default
- Enabling/Disabling launcher and updates from settings.

## v1.0.0+3
- StartWMClass field added in desktop entries
- Support for detecting Flatpak applications.
Expand Down
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<p style="font-family: Sen">
App Fleet is a workspace management tool <strong>written entirely for the Linux Desktops</strong>,
designed and finely tested on GNOME.
designed and finely tested on GNOME .
It offers creation of workspace configurations that can later be launched using a startup workspace launcher.
</p>

Expand Down Expand Up @@ -47,6 +47,16 @@ Here comes App Fleet,
<strong>App Fleet is written using The Flutter Framework.</strong>
</p>

## What's New in v1.0.0+4

- Now, you can mark a workspace as default and the launcher will automatically start executing it.
- Dark Mode Support \- Support for System Theme Detection.
- Manage Auto Update Notifier through Settings.
- Option to turn off autostart through Settings.
- A dedicated Preferences Dialog.

See [**CHANGELOG**](https://github.com/omegaui/app_fleet/blob/main/CHANGELOG.md) for full feature list.

## Install (Advanced Installation Options)

### Install using your shell
Expand Down Expand Up @@ -105,6 +115,15 @@ cd app-fleet/package
./update-from-source.sh
```

### Uninstalling

If you have already installed **App Fleet**, and now you want to uninstall,
then, you can do that by running the following (independent of install the method) :

```shell
curl https://raw.githubusercontent.com/omegaui/app-fleet/main/network-uninstall.sh | bash
```

## Contributing

<p style="font-family: Sen">
Expand Down
Binary file modified assets/icons/bug.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/delete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/discard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions assets/scripts/theme-detector.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash
theme=$(gsettings get org.gnome.desktop.interface color-scheme | awk '{print $1}')
if [[ $theme == *dark* ]]; then
exit 1
else
exit 0
fi
50 changes: 50 additions & 0 deletions assets/themes/dark.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"background": "0xFF191A1E",
"foreground": "0xFFFFFFFF",
"window-drop-shadow": "0x661E1E1E",
"dialog-drop-shadow": "0x1A9E9E9E",
"create-button-border-color": "0xFF448AFF",
"create-button-background": "0x33448AFF",
"create-button-foreground": "0xFF2196F3",
"create-new-button-background": "0xFF21A396",
"create-new-button-foreground": "0xFFFFFFFF",
"create-new-button-shadow-color": "0xFF000000",
"info-icon-color": "0xFFFFFFFF",
"settings-icon-color": "0xFFB9B9B9",
"workspace-tile-color": "0xFF191A1E",
"floating-app-tile-color": "0xFF1E1E1E",
"floating-app-tile-drop-shadow-color": "0xCC000000",
"switch-color": "0xFF69F0AE",
"negative-option-background": "0x33F44336",
"negative-option-foreground": "0xFFFF5252",
"recommended-option-background": "0x1A4CAF50",
"recommended-option-foreground": "0xFF00C853",
"safe-option-background": "0x332196F3",
"safe-option-foreground": "0xFF448AFF",
"add-app-button-background": "0x3369F0AE",
"add-app-button-foreground": "0xFFFFFFFF",
"select-app-button-background": "0x334C50AF",
"select-app-button-foreground": "0xFFFFFFFF",
"remove-apps-button-background": "0x33F44336",
"remove-apps-button-foreground": "0xFFFFFFFF",
"app-tile-foreground": "0xFFFFFFFF",
"app-tile-background": "0xFF9E9E9E",
"app-workspace-indicator-foreground": "0xFFFFFFFF",
"app-workspace-indicator-background": "0xFF69F0AE",
"selected-workspace-indicator-foreground": "0xFFFFFFFF",
"selected-workspace-indicator-background": "0xFF69F0AE",
"unselected-workspace-indicator-foreground": "0xFFFFFFFF",
"unselected-workspace-indicator-background": "0xFF448AFF",
"workspace-dialog-background": "0xFF1E1E1E",
"workspace-dialog-drop-shadow-color": "0x669E9E9E",
"config-label-foreground": "0xFFB9B9B9",
"config-label-background": "0xFF2E2E2E",
"save-label-background": "0xFF448AFF",
"save-label-foreground": "0xFFFFFFFF",
"cancel-label-background": "0xFFFF5252",
"cancel-label-foreground": "0xFFFFFFFF",
"field-enabled-color": "0xFFAEAEAE",
"field-disabled-color": "0xFFFFFFFF",
"field-focused-color": "0xFF69F0AE",
"field-primary-color": "0xFF2196F3"
}
50 changes: 50 additions & 0 deletions assets/themes/light.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"background": "0xFFFFFFFF",
"foreground": "0xFF1E1E1E",
"window-drop-shadow": "0x66607D8B",
"dialog-drop-shadow": "0x669E9E9E",
"create-button-border-color": "0xFF448AFF",
"create-button-background": "0x33448AFF",
"create-button-foreground": "0xFF2196F3",
"create-new-button-background": "0xFF2196F3",
"create-new-button-foreground": "0xFFFFFFFF",
"create-new-button-shadow-color": "0xFFFFFFFF",
"info-icon-color": "0xFF000000",
"settings-icon-color": "0xFF424242",
"workspace-tile-color": "0xFFFFFFFF",
"floating-app-tile-color": "0xFFFFFFFF",
"floating-app-tile-drop-shadow-color": "0xCC9E9E9E",
"switch-color": "0xFF6750A4",
"negative-option-background": "0x33F44336",
"negative-option-foreground": "0xFFFF5252",
"recommended-option-background": "0x1A4CAF50",
"recommended-option-foreground": "0xFF00C853",
"safe-option-background": "0x332196F3",
"safe-option-foreground": "0xFF448AFF",
"add-app-button-background": "0x3369F0AE",
"add-app-button-foreground": "0xFF000000",
"select-app-button-background": "0x33448AFF",
"select-app-button-foreground": "0xFF000000",
"remove-apps-button-background": "0x33FF5252",
"remove-apps-button-foreground": "0xFF000000",
"app-tile-foreground": "0xFFFFFFFF",
"app-tile-background": "0xFF9E9E9E",
"app-workspace-indicator-foreground": "0xFFFFFFFF",
"app-workspace-indicator-background": "0xFF388E3C",
"selected-workspace-indicator-foreground": "0xFFFFFFFF",
"selected-workspace-indicator-background": "0xFF388E3C",
"unselected-workspace-indicator-foreground": "0xFFFFFFFF",
"unselected-workspace-indicator-background": "0xFF00C853",
"workspace-dialog-background": "0xFFB9F6CA",
"workspace-dialog-drop-shadow-color": "0x669E9E9E",
"config-label-foreground": "0xFF424242",
"config-label-background": "0x339E9E9E",
"save-label-background": "0xFF448AFF",
"save-label-foreground": "0xFFFFFFFF",
"cancel-label-background": "0xFFFF5252",
"cancel-label-foreground": "0xFFFFFFFF",
"field-enabled-color": "0xFF9E9E9E",
"field-disabled-color": "0xFFFFFFFF",
"field-focused-color": "0xFF4CAF50",
"field-primary-color": "0xFF2196F3"
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@ import 'package:app_fleet/app/config/presentation/config_controller.dart';
import 'package:app_fleet/app/config/presentation/widgets/workspace_app_box.dart';
import 'package:app_fleet/app/config/presentation/widgets/workspace_icon_box.dart';
import 'package:app_fleet/app/config/presentation/widgets/workspace_map_box.dart';
import 'package:app_fleet/app/settings/data/settings_repository.dart';
import 'package:app_fleet/config/theme/app_theme.dart';
import 'package:app_fleet/core/dependency_manager.dart';
import 'package:app_fleet/utils/app_tooltip_builder.dart';
import 'package:app_fleet/utils/bottom_bar.dart';
import 'package:app_fleet/utils/show_app_selection_dialog.dart';
import 'package:app_fleet/utils/show_confirm_delete_dialog.dart';
import 'package:app_fleet/utils/show_discard_edits_dialog.dart';
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';

enum ConfigUIMode { edit, create }

Expand Down Expand Up @@ -39,6 +43,8 @@ class _ConfigInitializedStateViewState

late TextEditingController workspaceNameController;

final settingsRepo = DependencyInjection.find<SettingsRepository>();

@override
void initState() {
super.initState();
Expand All @@ -50,12 +56,20 @@ class _ConfigInitializedStateViewState
}

void saveConfig() {
if (workspaceEntity.name.trim().isEmpty) {
return;
}
if (widget.workspaceEntity.name == settingsRepo.getDefaultWorkspace()) {
settingsRepo.setDefaultWorkspace(workspaceEntity.name);
}
widget.controller.removeConfiguration(widget.workspaceEntity);
widget.controller.saveConfiguration(workspaceEntity);
}

@override
Widget build(BuildContext context) {
bool isDefaultWorkspace =
settingsRepo.getDefaultWorkspace() == workspaceEntity.name;
return Scaffold(
backgroundColor: Colors.transparent,
body: CallbackShortcuts(
Expand Down Expand Up @@ -91,11 +105,11 @@ class _ConfigInitializedStateViewState
width: 700,
height: 500,
decoration: BoxDecoration(
color: Colors.white,
color: AppTheme.background,
borderRadius: BorderRadius.circular(30),
boxShadow: [
BoxShadow(
color: Colors.blueGrey.withOpacity(0.4),
color: AppTheme.windowDropShadow,
blurRadius: 16,
),
],
Expand Down Expand Up @@ -158,6 +172,34 @@ class _ConfigInitializedStateViewState
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
if (widget.configUIMode ==
ConfigUIMode.edit)
AppTooltipBuilder.wrap(
text: "Mark as Default Workspace",
child: IconButton(
onPressed: () {
setState(() {
settingsRepo
.setDefaultWorkspace(
isDefaultWorkspace
? null
: workspaceEntity
.name);
});
},
icon: Icon(
isDefaultWorkspace
? Icons.star_border
: Icons.star_border,
color: isDefaultWorkspace
? Colors.amber.shade700
: Colors.grey,
size: 24,
),
).animate().scale(
delay:
const Duration(seconds: 1)),
),
if (widget.configUIMode ==
ConfigUIMode.edit)
IconButton(
Expand Down Expand Up @@ -232,31 +274,38 @@ class _ConfigInitializedStateViewState
enabledBorder: UnderlineInputBorder(
borderRadius:
BorderRadius.circular(10),
borderSide: const BorderSide(
color: Colors.grey, width: 2),
borderSide: BorderSide(
color: AppTheme
.fieldEnabledColor,
width: 2),
),
focusedBorder: UnderlineInputBorder(
borderRadius:
BorderRadius.circular(10),
borderSide: const BorderSide(
color: Colors.green,
borderSide: BorderSide(
color: AppTheme
.fieldFocusedColor,
width: 4),
),
disabledBorder:
UnderlineInputBorder(
borderRadius:
BorderRadius.circular(10),
borderSide: const BorderSide(
color: Colors.white,
borderSide: BorderSide(
color: AppTheme
.fieldDisabledColor,
width: 2),
),
border: UnderlineInputBorder(
borderRadius:
BorderRadius.circular(10),
borderSide: const BorderSide(
color: Colors.blue, width: 2),
borderSide: BorderSide(
color: AppTheme
.fieldPrimaryColor,
width: 2),
),
hintText: "e.g: 'Its Hero Time'",
hintStyle: AppTheme.fontSize(15),
),
),
),
Expand Down
32 changes: 16 additions & 16 deletions lib/app/config/presentation/widgets/workspace_app_box.dart
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
margin: const EdgeInsets.symmetric(horizontal: 2.0),
padding: const EdgeInsets.symmetric(horizontal: 10.0),
decoration: BoxDecoration(
color: Colors.grey.withOpacity(hover ? 0.4 : 0.2),
color: AppTheme.configLabelBackground
.withOpacity(hover ? 0.4 : 0.2),
borderRadius: BorderRadius.circular(40),
),
child: Padding(
Expand Down Expand Up @@ -102,15 +103,14 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
width: 20,
height: 20,
decoration: BoxDecoration(
color: Colors.green.shade700,
color: AppTheme.appWorkspaceIndicatorBackground,
borderRadius: BorderRadius.circular(30),
),
child: Center(
child: Text(
"${app.priority + 1}",
style: AppTheme.fontSize(13)
.makeBold()
.withColor(Colors.white),
style: AppTheme.fontSize(13).makeBold().withColor(
AppTheme.appWorkspaceIndicatorForeground),
),
),
),
Expand Down Expand Up @@ -138,7 +138,7 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
children: [
Container(
decoration: BoxDecoration(
color: Colors.grey.withOpacity(0.2),
color: AppTheme.configLabelBackground,
borderRadius: BorderRadius.circular(30),
),
padding:
Expand All @@ -147,7 +147,7 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
"Workspace Apps",
style: AppTheme.fontSize(16)
.makeBold()
.withColor(Colors.grey.shade800),
.withColor(AppTheme.configLabelForeground),
),
),
Padding(
Expand All @@ -168,11 +168,11 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
);
},
style: IconButton.styleFrom(
backgroundColor: Colors.greenAccent.withOpacity(0.2),
backgroundColor: AppTheme.addAppButtonBackground,
),
icon: const Icon(
icon: Icon(
Icons.add,
color: Colors.black,
color: AppTheme.addAppButtonForeground,
),
),
),
Expand All @@ -196,11 +196,11 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
);
},
style: IconButton.styleFrom(
backgroundColor: Colors.blueAccent.withOpacity(0.2),
backgroundColor: AppTheme.selectAppButtonBackground,
),
icon: const Icon(
icon: Icon(
Icons.my_location,
color: Colors.black,
color: AppTheme.selectAppButtonForeground,
),
),
),
Expand All @@ -216,11 +216,11 @@ class _WorkspaceAppBoxState extends State<WorkspaceAppBox> {
});
},
style: IconButton.styleFrom(
backgroundColor: Colors.redAccent.withOpacity(0.2),
backgroundColor: AppTheme.removeAppsButtonBackground,
),
icon: const Icon(
icon: Icon(
Icons.playlist_remove_rounded,
color: Colors.black,
color: AppTheme.removeAppsButtonForeground,
),
),
),
Expand Down
Loading

0 comments on commit 093a311

Please sign in to comment.