Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added bunch of new features #46

Open
wants to merge 53 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
0c890ac
Remove UWP support
ViRb3 Jan 27, 2020
4f968f4
Designer language changes
ViRb3 Jan 27, 2020
e376ecb
Add desktop reorder functionality
ViRb3 Jan 27, 2020
708b6e1
Update README
ViRb3 Jan 27, 2020
0cd9905
Bump version
ViRb3 Jan 27, 2020
5a957ad
Add GitHub CI
ViRb3 Jan 27, 2020
b0e81a6
Update README
ViRb3 Jan 27, 2020
124df1d
Prevent trying to use adjacent desktop if none
ViRb3 Jan 27, 2020
8b80240
Update move desktop default keybinds to avoid conflict
ViRb3 Jan 27, 2020
5fb2606
Bump version
ViRb3 Jan 27, 2020
785378e
Update README
ViRb3 Jan 27, 2020
08d737d
Rework notification windows
ViRb3 Jan 28, 2020
da280b8
Add functionality to Move, Switch and Move&Switch to specific desktops.
May 5, 2020
8cb0221
Add desktop naming functionality.
May 5, 2020
4516757
When moving whole desktops, swap the names as well.
May 5, 2020
3d3fd17
Add "Rename Current" functionality. (Ctrl+Win+R by default.)
May 5, 2020
1ed5c7f
Add Japanese translations to missing items.
May 5, 2020
e403b6a
Add note to Readme.
May 5, 2020
a49f12a
Make desktop names list dynamic based on amount of desktops.
May 6, 2020
09a6223
Handle interaction with default switching keys better and add the key…
May 6, 2020
5650c26
Add "Reset Settings to Defaults" button.
May 6, 2020
2edfef3
Fix colours so they work in light and dark theme and don't flicker ba…
May 6, 2020
80ce132
Fix rename window sometimes not activating.
May 6, 2020
9887852
Remove Ctrl from swap desktop defaults.
May 6, 2020
5291791
Add Switch to Previous functionality.
May 8, 2020
999a326
Style rename window text box.
May 8, 2020
44a95eb
Update Readme with info on new features.
May 8, 2020
c228b86
Update Readme with features and modified default shortcuts.
May 8, 2020
07d39e9
Readme: Fix line endings.
May 8, 2020
e6ad6f4
Readme: Fix more line endings.
May 8, 2020
457e3d9
Readme: Add one more not about moving window to specific desktop.
May 8, 2020
5269b3a
Fix text binding in shortcut settings for numbers.
May 19, 2020
298dade
Fix notification preview style and text in settings.
May 19, 2020
ab0e943
Fill default shortcut to properly align with built-in, closes #2
ViRb3 May 19, 2020
f44f2b8
Language consistency
ViRb3 May 19, 2020
4606be1
UI consistency
ViRb3 May 19, 2020
9657d26
Shortcut consistency
ViRb3 May 19, 2020
db98c3f
More reliable rename textbox focus
ViRb3 May 19, 2020
10b862f
Update shortcut keys
ViRb3 May 19, 2020
06a0ea8
Update README
ViRb3 May 19, 2020
80b527c
Merge branch 'kuukunen-develop' into develop
ViRb3 May 19, 2020
e9487fa
Bump version
ViRb3 May 19, 2020
3c85113
Fix rename window focus
ViRb3 May 19, 2020
acbfe67
Bump version
ViRb3 May 19, 2020
8adc55a
Update README
ViRb3 May 19, 2020
80d6987
Revert "Fill default shortcut to properly align with built-in"
ViRb3 May 20, 2020
ef8693a
refactor: disable loop desktops by default
ViRb3 May 20, 2020
c76e498
fix: desktop name when removing desktop
ViRb3 May 20, 2020
a0d0e7a
chore: rework CI
ViRb3 May 20, 2020
fcdf8c0
chore(release): 5.4.2 [skip ci]
semantic-release-bot May 20, 2020
1f50b75
chore(ci): convert to yml
ViRb3 May 20, 2020
c1728a6
fix: proper version in application
ViRb3 May 20, 2020
9c18c1d
chore(release): 5.4.3 [skip ci]
semantic-release-bot May 20, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: CI

on:
push:
branches: [develop]
pull_request:
branches: [develop]

jobs:
build:
runs-on: [windows-2019]

steps:
- name: Setup MSBuild.exe
uses: warrenbuckley/Setup-MSBuild@v1

- name: Setup Nuget.exe
if: success()
uses: warrenbuckley/Setup-Nuget@v1

- name: Checkout
if: success()
uses: actions/checkout@v2
with:
token: ${{ secrets.API_GITHUB_TOKEN }}

- name: Release
if: success()
uses: cycjimmy/[email protected]
with:
extra_plugins: |
@semantic-release/[email protected]
@semantic-release/[email protected]
@google/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.API_GITHUB_TOKEN }}
38 changes: 38 additions & 0 deletions .releaserc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
branches:
- develop
plugins:
- "@semantic-release/commit-analyzer"

- #
- "@google/semantic-release-replace-plugin"
- replacements:
- files:
- source/SylphyHorn/Properties/AssemblyInfo.cs
from: '\[assembly: AssemblyVersion\(".+"\)\]'
to: '[assembly: AssemblyVersion("${nextRelease.version}")]'
results:
- file: source/SylphyHorn/Properties/AssemblyInfo.cs
hasChanged: true
numMatches: 1
numReplacements: 1
countMatches: true

- #
- "@semantic-release/git"
- assets:
- source/SylphyHorn/Properties/AssemblyInfo.cs
message: "chore(release): ${nextRelease.version} [skip ci]"

- #
- "@semantic-release/exec"
- prepareCmd: "powershell -ep bypass -file build.ps1"

- "@semantic-release/release-notes-generator"

- #
- "@semantic-release/github"
- successComment: false
failComment: false
assets:
- path: SylphyHornEx.zip
41 changes: 20 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,49 @@
# SylphyHorn
# SylphyHornEx
> This is a fork of [SylphyHorn](https://github.com/Grabacr07/SylphyHorn) with new features and better optimization

SylphyHorn is Virtual Desktop Tools for Windows 10.
Provides global hotkeys, switching notification, change background and several functions to virtual desktop.
SylphyHorn is a collection of virtual desktop tools for Windows 10.
It provides global hotkeys, switching notification, different background per virtual desktop, and many more features to improve your experience.

This app is Windows Desktop application running on .NET Framework, however built using the Desktop Bridge and published in Windows Store as UWP application.


## Installations

Please download from [Windows app store](https://www.microsoft.com/store/apps/9nblggh58t01) and install.
## Installation
Please download from [Releases](https://github.com/ViRb3/SylphyHornEx/releases).


## Requirements

* Windows 10 build 14393 (Anniversary Update) or later


## Features

* Switching notification
<!-- ![](https://cloud.githubusercontent.com/assets/1779073/19052151/a6be54ac-89f0-11e6-8936-9bcc2aafc1d5.gif) -->

* Move active window to adjacent desktop
(default key combination: <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Win</kbd> + <kbd><-</kbd> or <kbd>-></kbd>)
<!-- ![](https://cloud.githubusercontent.com/assets/1779073/19051476/22e49daa-89ee-11e6-8fe2-9734f2714871.gif) -->
(default key combination: <kbd>Alt</kbd> + <kbd>Win</kbd> + <kbd>&larr;</kbd> or <kbd>&rarr;</kbd>)

* Move active window to create new desktop
(default key combination: <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Win</kbd> + <kbd>D</kbd>)

* Pin window to all desktops ... It is more convenient than using the task view
* Reorder virtual desktops
(default key combination: <kbd>Shift</kbd> + <kbd>Ctrl</kbd> + <kbd>Win</kbd> + <kbd>&larr;</kbd> or <kbd>&rarr;</kbd>)

* Rename desktops from settings or with hotkey
(default key combination: <kbd>Ctrl</kbd> + <kbd>Win</kbd> + <kbd>R</kbd>)

* Switch to specific desktop
(default key combination: <kbd>Ctrl</kbd> + <kbd>Win</kbd> + <kbd>1</kbd> to <kbd>0</kbd>)

* Move active window to specific desktop
(default key combination: <kbd>Alt</kbd> + <kbd>Win</kbd> + <kbd>1</kbd> to <kbd>0</kbd>)

* Pin window to all desktops
(default key combination: <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Win</kbd> + <kbd>P</kbd>)
![](https://user-images.githubusercontent.com/1779073/40626965-e400321e-62f6-11e8-8947-b2ded3ed8c77.gif)

* Settings GUI (call from tasktray)
![](https://user-images.githubusercontent.com/1779073/40626983-01d4467c-62f7-11e8-8d2f-b9655fa666a5.png)

* Change the background for each desktop
![](https://user-images.githubusercontent.com/1779073/40626992-14589938-62f7-11e8-9568-fd956d499500.png)


## Credits

* Manato KAMEYA [@Grabacr07](https://twitter.com/Grabacr07) (Author, Developer)
* Yutaka TSUMORI [@tmyt](https://twitter.com/tmyt) (Developer)


## License

SylphyHorn is licensed under [the MIT License](LICENSE.txt).
7 changes: 7 additions & 0 deletions build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
cd source
git submodule update --init --recursive
nuget restore SylphyHorn.sln
msbuild SylphyHorn.sln /p:Configuration=Release /m /verbosity:normal /p:WarningLevel=0
cd ..
Rename-Item -Path "source/SylphyHorn/bin/Release" -NewName "SylphyHornEx"
Compress-Archive -Path "source/SylphyHorn/bin/SylphyHornEx" -DestinationPath SylphyHornEx.zip
7 changes: 6 additions & 1 deletion source/SylphyHorn.Core/Serialization/DictionaryProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Threading.Tasks;
using MetroTrilithon.Serialization;
using System.Collections.ObjectModel;

namespace SylphyHorn.Serialization
{
Expand All @@ -15,7 +16,7 @@ public abstract class DictionaryProvider : ISerializationProvider

public virtual string Filename { get; } = "Settings.xml";

public virtual Type[] KnownTypes { get; } = { typeof(bool), typeof(int[]), };
public virtual Type[] KnownTypes { get; } = { typeof(bool), typeof(int[]), typeof(ObservableCollection<StringHolder>) };

public event EventHandler Reloaded;

Expand Down Expand Up @@ -50,6 +51,10 @@ public bool RemoveValue(string key)
}
}

public void Clear()
{
this._settings.Clear();
}

void ISerializationProvider.Save()
{
Expand Down
12 changes: 8 additions & 4 deletions source/SylphyHorn.Core/Serialization/GeneralSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Threading.Tasks;
using MetroTrilithon.Serialization;
using System.Collections.ObjectModel;

namespace SylphyHorn.Serialization
{
Expand All @@ -15,18 +16,18 @@ public GeneralSettings(ISerializationProvider provider)
this._provider = provider;
}

public SerializableProperty<bool> LoopDesktop => this.Cache(key => new SerializableProperty<bool>(key, this._provider));
public SerializableProperty<bool> LoopDesktop => this.Cache(key => new SerializableProperty<bool>(key, this._provider, false));

public SerializableProperty<bool> SkipDefaultAnimation => this.Cache(key => new SerializableProperty<bool>(key, this._provider, false));

public SerializableProperty<bool> NotificationWhenSwitchedDesktop => this.Cache(key => new SerializableProperty<bool>(key, this._provider, true));

public SerializableProperty<int> NotificationDuration => this.Cache(key => new SerializableProperty<int>(key, this._provider, 2500));
public SerializableProperty<int> NotificationDuration => this.Cache(key => new SerializableProperty<int>(key, this._provider, 1500));

public SerializableProperty<bool> ChangeBackgroundEachDesktop => this.Cache(key => new SerializableProperty<bool>(key, this._provider));

public SerializableProperty<string> DesktopBackgroundFolderPath => this.Cache(key => new SerializableProperty<string>(key, this._provider));

public SerializableProperty<bool> OverrideWindowsDefaultKeyCombination => this.Cache(key => new SerializableProperty<bool>(key, this._provider, false));

public SerializableProperty<bool> SuspendKeyDetection => this.Cache(key => new SerializableProperty<bool>(key, this._provider));

public SerializableProperty<bool> FirstTime => this.Cache(key => new SerializableProperty<bool>(key, this._provider, true));
Expand All @@ -38,5 +39,8 @@ public GeneralSettings(ISerializationProvider provider)
public SerializableProperty<uint> Display => this.Cache(key => new SerializableProperty<uint>(key, this._provider, 0));

public SerializableProperty<bool> TrayShowDesktop => this.Cache(key => new SerializableProperty<bool>(key, this._provider, false));

public SerializableProperty<ObservableCollection<StringHolder>> DesktopNames => this.Cache(key => new SerializableProperty<ObservableCollection<StringHolder>>(key, this._provider));

}
}
25 changes: 25 additions & 0 deletions source/SylphyHorn.Core/Serialization/SerializableProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
using System.Threading.Tasks;
using MetroTrilithon.Linq;
using MetroTrilithon.Serialization;
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace SylphyHorn.Serialization
{
Expand All @@ -14,6 +16,29 @@ public SerializableProperty(string key, ISerializationProvider provider) : base(
public SerializableProperty(string key, ISerializationProvider provider, T defaultValue) : base(key, provider, defaultValue) { }
}

public class StringHolder : INotifyPropertyChanged
{
private string _value;

public string Value
{
get => _value; set
{
if (_value == value) return;
_value = value;
NotifyOfPropertyChange();
}
}

public static implicit operator string(StringHolder stringHolder) => stringHolder.Value;

public static implicit operator StringHolder(string s) => new StringHolder { Value = s };

public void NotifyOfPropertyChange([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

public event PropertyChangedEventHandler PropertyChanged;
}


public class ShortcutkeyProperty : SerializablePropertyBase<int[]>
{
Expand Down
Loading