Skip to content

Commit 4beadc5

Browse files
Fixed recomp detection and double Frontiers ML
1 parent 8962731 commit 4beadc5

6 files changed

Lines changed: 44 additions & 29 deletions

File tree

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,24 @@ Download the Windows binary from the [releases page](https://github.com/hedge-de
4646
> Currently Hedge Mod Manager does not support Epic Games Launcher. Until this feature gets implemented you will need to use [Heroic Games Launcher](https://heroicgameslauncher.com/) for playing games from Epic Games.
4747
4848
#### Linux/Steam Deck
49-
Download the Flatpak bundle (file ending with .flatpak) from the [releases page](https://github.com/hedge-dev/HedgeModManager/releases), then open the bundle file using your Flatpak compatible package manager like Discover for KDE/Steam Deck. For CLI installs use the `flatpak --user install` command.
49+
The recommended method of installing Hedge Mod Manager is through software managers which use Flathub like KDE Discover on the Steam Deck.
5050
> [!IMPORTANT]
51+
> At the time of writing builds on Flathub by default will not detect games from Epic Games and Steam installed using Flatpak. To fix this you will need to override the permissions with the following commands:
52+
> ```
53+
> flatpak override --user --filesystem=~/.var/app/com.valvesoftware.Steam/.steam/steam/steamapps:create io.github.hedge_dev.hedgemodmanager
54+
> flatpak override --user --filesystem=~/.var/app/com.heroicgameslauncher.hgl/config/heroic/GamesConfig:ro io.github.hedge_dev.hedgemodmanager
55+
> flatpak override --user --filesystem=~/.var/app/com.heroicgameslauncher.hgl/config/heroic/legendaryConfig/legendary:ro io.github.hedge_dev.hedgemodmanager
56+
>
57+
> ```
58+
59+
Flatpak bundles are also available from the [releases page](https://github.com/hedge-dev/HedgeModManager/releases). Use the `flatpak --user install` command to install these.
60+
> [!NOTE]
5161
> Currently Hedge Mod Manager only supports specific types of Steam and Heroic installations. This should not be an issue if you are using SteamOS.
5262
>
5363
> For Steam, a Steam install with a link at `~/.steam` or `~/.local/share/Steam`.
5464
>
5565
> For Heroic, it must be a flatpak install within the home directory.
5666
57-
> [!NOTE]
58-
> Currently Hedge Mod Manager is not officially available to be downloaded from any package managers.
59-
6067
### Frequently Asked Questions
6168
- Where can I install mods?
6269

Source/HedgeModManager.UI/Controls/Settings/Settings.axaml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
77
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
88
xmlns:vm="using:HedgeModManager.UI.ViewModels"
9-
mc:Ignorable="d" d:DesignWidth="1168" d:DesignHeight="1000"
9+
mc:Ignorable="d" d:DesignWidth="1168" d:DesignHeight="1200"
1010
x:Class="HedgeModManager.UI.Controls.Settings.Settings"
1111
x:DataType="vm:MainWindowViewModel"
1212
Loaded="OnLoaded"
@@ -25,7 +25,7 @@
2525
Title="{DynamicResource Settings.Title.Profile}"
2626
Description="{DynamicResource Settings.Description.Profile}">
2727
<cs:SettingsEntry.Data>
28-
<ComboBox MinWidth="220"
28+
<ComboBox MinWidth="240"
2929
ItemsSource="{Binding Profiles}"
3030
SelectedItem="{Binding ViewModel.SelectedProfile, RelativeSource={RelativeSource AncestorType=cs:Settings}}"
3131
SelectionChanged="OnProfileSelectionChanged"
@@ -38,11 +38,11 @@
3838
Description="{Binding ViewModel.ModsDirectory, RelativeSource={RelativeSource AncestorType=cs:Settings}}">
3939
<cs:SettingsEntry.Data>
4040
<StackPanel Orientation="Horizontal" Spacing="10">
41-
<cb:Button MinWidth="105"
41+
<cb:Button MinWidth="115"
4242
Text="{DynamicResource Settings.Button.ChangeModsDir}"
4343
VerticalContentAlignment="Center"
4444
Click="OnModsDirectoryChangeClick" />
45-
<cb:Button MinWidth="105"
45+
<cb:Button MinWidth="115"
4646
Text="{DynamicResource Settings.Button.OpenModsDir}"
4747
VerticalContentAlignment="Center"
4848
Click="OnModsDirClick" />
@@ -54,8 +54,8 @@
5454
Description="{Binding ViewModel.ModLoaderDescription, RelativeSource={RelativeSource AncestorType=cs:Settings}}">
5555
<cs:SettingsEntry.Data>
5656
<StackPanel Orientation="Horizontal">
57-
<cb:Button MinWidth="105"
58-
Margin="0,0,35,0" FontSize="14"
57+
<cb:Button MinWidth="115"
58+
Margin="0,0,45,0" FontSize="14"
5959
IsVisible="{Binding ViewModel.InstallModLoaderText, RelativeSource={RelativeSource AncestorType=cs:Settings}, Converter={StaticResource EmptyBoolConverter}, ConverterParameter={x:True}}"
6060
Text="{Binding ViewModel.InstallModLoaderText, RelativeSource={RelativeSource AncestorType=cs:Settings}}"
6161
Click="OnInstallMLClick"/>
@@ -91,17 +91,17 @@
9191
Description="{DynamicResource Settings.Description.Proton}">
9292
<cs:SettingsEntry.Data>
9393
<StackPanel Orientation="Horizontal" Spacing="10">
94-
<cb:Button MinWidth="105"
94+
<cb:Button MinWidth="115"
9595
Text="{DynamicResource Settings.Button.ClearPrefix}"
9696
VerticalContentAlignment="Center"
9797
IsEnabled="{Binding IsBusy, Converter={StaticResource InvertedBoolConverter}}"
9898
Click="OnPrefixClearClick" />
99-
<cb:Button MinWidth="105"
99+
<cb:Button MinWidth="115"
100100
Text="{DynamicResource Settings.Button.ReinstallRuntime}"
101101
VerticalContentAlignment="Center"
102102
IsEnabled="{Binding IsBusy, Converter={StaticResource InvertedBoolConverter}}"
103103
Click="OnPrefixReinstallClick" />
104-
<cb:Button MinWidth="105"
104+
<cb:Button MinWidth="115"
105105
Text="{DynamicResource Settings.Button.OpenPrefixDir}"
106106
VerticalContentAlignment="Center"
107107
Click="OnPrefixOpenClick" />
@@ -120,8 +120,8 @@
120120
Description="{DynamicResource Settings.Description.UpdateManager}">
121121
<cs:SettingsEntry.Data>
122122
<StackPanel Orientation="Horizontal">
123-
<cb:Button MinWidth="105"
124-
Margin="0,0,35,0" FontSize="14"
123+
<cb:Button MinWidth="115"
124+
Margin="0,0,45,0" FontSize="14"
125125
Text="{Binding ViewModel.CheckManagerUpdatesText, RelativeSource={RelativeSource AncestorType=cs:Settings}, Converter={StaticResource StringLocalizeConverter}}"
126126
Click="OnCheckManagerUpdatesClick"/>
127127
<ToggleSwitch Margin="0,0,10,0" IsChecked="{Binding Config.CheckManagerUpdates}" />
@@ -133,8 +133,8 @@
133133
Description="{DynamicResource Settings.Description.UpdateML}">
134134
<cs:SettingsEntry.Data>
135135
<StackPanel Orientation="Horizontal">
136-
<cb:Button MinWidth="105"
137-
Margin="0,0,35,0" FontSize="14"
136+
<cb:Button MinWidth="115"
137+
Margin="0,0,45,0" FontSize="14"
138138
IsVisible="{Binding ViewModel.HasModLoader, RelativeSource={RelativeSource AncestorType=cs:Settings}}"
139139
Text="{Binding ViewModel.CheckLoaderUpdatesText, RelativeSource={RelativeSource AncestorType=cs:Settings}, Converter={StaticResource StringLocalizeConverter}}"
140140
Click="OnCheckModLoaderUpdatesClick"/>
@@ -147,8 +147,8 @@
147147
Description="{DynamicResource Settings.Description.UpdateMod}">
148148
<cs:SettingsEntry.Data>
149149
<StackPanel Orientation="Horizontal">
150-
<cb:Button MinWidth="105"
151-
Margin="0,0,35,0" FontSize="14"
150+
<cb:Button MinWidth="115"
151+
Margin="0,0,45,0" FontSize="14"
152152
Text="{Binding ViewModel.CheckModUpdatesText, RelativeSource={RelativeSource AncestorType=cs:Settings}, Converter={StaticResource StringLocalizeConverter}}"
153153
Click="OnCheckModUpdatesClick"/>
154154
<ToggleSwitch Margin="0,0,10,0" IsChecked="{Binding Config.CheckModUpdates}" />
@@ -160,8 +160,8 @@
160160
Description="{DynamicResource Settings.Description.UpdateCodes}">
161161
<cs:SettingsEntry.Data>
162162
<StackPanel Orientation="Horizontal">
163-
<cb:Button MinWidth="105"
164-
Margin="0,0,35,0" FontSize="14"
163+
<cb:Button MinWidth="115"
164+
Margin="0,0,45,0" FontSize="14"
165165
Text="{Binding ViewModel.CheckCodeUpdatesText, RelativeSource={RelativeSource AncestorType=cs:Settings}, Converter={StaticResource StringLocalizeConverter}}"
166166
Click="OnCheckCodeUpdatesClick"/>
167167
<ToggleSwitch Margin="0,0,10,0" IsChecked="{Binding Config.CheckCodeUpdates}" />
@@ -171,7 +171,7 @@
171171
<cs:SettingsEntry Icon="Palette"
172172
Title="{DynamicResource Settings.Title.Theme}">
173173
<cs:SettingsEntry.Data>
174-
<ComboBox MinWidth="220"
174+
<ComboBox MinWidth="240"
175175
ItemsSource="{Binding ViewModel.ThemeCollection, RelativeSource={RelativeSource AncestorType=cs:Settings}}"
176176
SelectedValue="{Binding ViewModel.SelectedTheme, RelativeSource={RelativeSource AncestorType=cs:Settings}}"
177177
SelectionChanged="OnThemeSelectionChanged"
@@ -188,7 +188,7 @@
188188
<cs:SettingsEntry Icon="Translate"
189189
Title="{DynamicResource Settings.Title.Language}">
190190
<cs:SettingsEntry.Data>
191-
<ComboBox MinWidth="220"
191+
<ComboBox MinWidth="240"
192192
ItemsSource="{Binding Languages}"
193193
SelectedItem="{Binding ViewModel.SelectedLanguage, RelativeSource={RelativeSource AncestorType=cs:Settings}}"
194194
SelectionChanged="OnLanguageSelectionChanged"

Source/HedgeModManager.UI/Languages/en-AU.axaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@
161161
<system:String xml:space="preserve" x:Key="Modal.Message.InstallError">Failed to install mod. Check log for exception.</system:String>
162162
<system:String xml:space="preserve" x:Key="Modal.Message.MissingDependency">The mods listed below are missing and are required to play.&#x0a;&#x0a;{0}</system:String>
163163
<system:String xml:space="preserve" x:Key="Modal.Message.ModLoaderInstallError">An error occurred while trying to install the mod loader.&#x0a;&#x0a;Check log for exception.</system:String>
164-
<system:String xml:space="preserve" x:Key="Modal.Message.PkgUpdate">Please update Hedge Mod Manager using your system's package manager.</system:String>
165164
<system:String xml:space="preserve" x:Key="Modal.Message.SelectModsError">Hedge Mod Manager does not have permissions to the selected directory.&#x0a;&#x0a;Please select another directory.</system:String>
166165
<system:String xml:space="preserve" x:Key="Modal.Message.UpdateMod">There is an update available for {0}.&#x0a;&#x0a;Would you like to update the mod?</system:String>
167166
<system:String xml:space="preserve" x:Key="Modal.Message.UpdateModError">An unknown error occurred while updating &quot;{0}&quot;.&#x0a;&#x0a;Please try again later.</system:String>

Source/HedgeModManager.UI/ViewModels/MainWindowViewModel.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,14 @@ public MainWindowViewModel(UILogger logger, List<LanguageEntry> languages)
8080
};
8181
Logger.Information($"Starting HedgeModManager {AppVersion}...");
8282
Logger.Information($"Startup Date: {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} (UTC)");
83-
Logger.Debug($"IsWindows: {OperatingSystem.IsWindows()}");
84-
Logger.Debug($"IsLinux: {OperatingSystem.IsLinux()}");
83+
string os = "Unknown";
84+
if (OperatingSystem.IsWindows())
85+
os = "Windows";
86+
else if (OperatingSystem.IsLinux())
87+
os = "Linux"; // Excludes Android
88+
else if (OperatingSystem.IsMacOS())
89+
os = "macOS";
90+
Logger.Debug($"OS: {os}");
8591
Logger.Debug($"RID: {RuntimeInformation.RuntimeIdentifier}");
8692
Logger.Debug($"FlatpakID: \"{Program.FlatpakID}\" ({!string.IsNullOrEmpty(Program.FlatpakID)})");
8793
Logger.Debug($"InstallLocation: {Program.InstallLocation}");
@@ -158,7 +164,7 @@ public async Task CheckForManagerUpdatesAsync()
158164

159165
public async Task CheckForModLoaderUpdatesAsync()
160166
{
161-
await new Download(Localize("Download.Text.CheckLoaderUpdate"))
167+
await new Download(Localize("Download.Text.CheckLoaderUpdate"), true)
162168
.OnRun(async (d, c) =>
163169
{
164170
d.ReportMax(-1);

Source/HedgeModManager/ModdableGameLocator.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public class ModdableGameLocator
8888
ID = "SonicFrontiers",
8989
ModLoaderName = "HE2ModLoader",
9090
ModLoaderFileName = "d3d11.dll",
91+
ModLoaderIncompatibleFileNames = [ "dinput8.dll" ],
9192
ModLoaderDownloadURL = Resources.HE2MLDownloadURL,
9293
PlatformInfos = new()
9394
{
@@ -286,8 +287,10 @@ public static List<IModdableGame> LocateGames()
286287
if (OperatingSystem.IsLinux() && gameInfo.PlatformInfos.TryGetValue("Desktop", out var desktopInfo))
287288
{
288289
string root = Path.Combine(Paths.GetActualUserConfigPath(), desktopInfo.ID);
290+
string desktopPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
291+
".local", "share","applications", $"{desktopInfo.ID}.desktop");
289292

290-
if (Directory.Exists(root))
293+
if (Directory.Exists(root) && File.Exists(desktopPath))
291294
{
292295
var gameSimple = new GameSimple(
293296
"Desktop", desktopInfo.ID, gameInfo.ID,

flatpak/hedgemodmanager.metainfo.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<caption>Mods tab showing the currently installed and enabled mods</caption>
4646
</screenshot>
4747
<screenshot>
48-
<image>https://raw.githubusercontent.com/hedge-dev/HedgeModManager/245c7fb001d95568b89b7952a8e13a74ab3d6483/data/screenshot01.png</image>
48+
<image>https://raw.githubusercontent.com/hedge-dev/HedgeModManager/245c7fb001d95568b89b7952a8e13a74ab3d6483/data/screenshot02.png</image>
4949
<caption>Settings tab showing the game, mod loader and manager settings</caption>
5050
</screenshot>
5151
</screenshots>

0 commit comments

Comments
 (0)