-
Notifications
You must be signed in to change notification settings - Fork 22
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
Support for Linux #606
Comments
Electron supports AppImage for Linux, I wonder why there is no Linux distro |
I recommend cloning the repo and compiling it yourself with "npm run build", if they haven't released version for linux yet they probably won't release it at all, it takes 0 effort to do that with electron |
Yeah, unfortunately it is not as simple as that :( |
@richardo2016x is this on the roadmap and/or do you have any pointers for me to implement this? |
Thank you for your love of our product. Unfortunately we currently do not have plans to release a Linux version. Please consider trying the versions available on other platforms. |
Thanks for the info. I'll look into setting up a VM on Linux then. |
Can we get more details on why is it not cross platform? I managed to compile it to .AppImage with npm i && npm run postinstall && npm run build && npm exec electron-builder --linux but when running the appimage I get the module not found error |
When I run the build I get a lot of webpack errors (unused variables, etc). In which branch are you running the build? |
In main branch, I had plenty of errors too but simply ignored them and compiled it. The source code seems like a mess, run 'npm run lint' for example and you'll see hundreds of warnings |
I tried to run Rabby Desktop in "Bottles" on Ubuntu 22.04 LTS. I could install rabby with the installer. However, when I want to launch it afterwards, I run into this error and Rabby Desktop won't launch.
My bottle runs with Win64 and soda-8.0.2 having mono, dotnet40 and dotnet48 installed. Regarding the error I read
However, I still couldn't get it to work. Could anybody run Rabby Desktop successfully in Bottles (or build it natively as Electron app)? Edit: I also installed Rabby directly in Wine (without using bottles) and today suddenly it worked. 😄 |
I also managed to compile the app ignoring all the webpack errors and built the AppImage. I used main branch
Does anybody know how to fix it? |
You could either add "type": "module" in package.json or use require instead of import in the file that the error was thrown, although as I remember after doing either of those, a new error appeared. Info from devs what exactly causes issues on linux would be lovely |
I was just playing around with this and could take it a bit further. These were the adoptions I made:
// export const RABBY_DESKTOP_KR_PWD = '<set password here>';
export const RABBY_DESKTOP_KR_PWD = IS_RUNTIME_PRODUCTION
? (process as any).RABBY_DESKTOP_KR_PWD!
: process.env.RABBY_DESKTOP_KR_PWD;` to that export const RABBY_DESKTOP_KR_PWD = 'mypwd';
//export const RABBY_DESKTOP_KR_PWD = IS_RUNTIME_PRODUCTION
// ? (process as any).RABBY_DESKTOP_KR_PWD!
// : process.env.RABBY_DESKTOP_KR_PWD;` Then ran
import child_process from 'child_process';
import {
type ProxySetting,
type Protocol,
getProxyWindows,
} from 'get-proxy-settings';
import { coerceNumber } from '@/isomorphic/primitive';
import { parseScUtilProxyOutput } from '@/isomorphic/parser';
const isWin32 = process.platform === 'win32';
const isLinux = process.platform === 'linux';
const command = 'scutil --proxy';
type ISimpleProxySetting = {
host: ProxySetting['host'];
port: ProxySetting['port'] | number;
protocol: ProxySetting['protocol'];
// TODO: use those two fields in proper case if provided
credentials?: ProxySetting['credentials'];
bypassAddrs?: string[];
};
async function getDarwinSystemHttpProxySettings(): Promise<ISimpleProxySetting | null> {
try {
const output = child_process.execSync(command);
const settings = parseScUtilProxyOutput(output.toString());
if (settings.HTTPEnable) {
return {
protocol: 'http' as Protocol,
host: settings.HTTPProxy as string,
port: settings.HTTPPort as number,
};
}
if (settings.HTTPSEnable) {
return {
protocol: 'http' as Protocol,
host: settings.HTTPSProxy as string,
port: settings.HTTPSPort as number,
};
} /* else if (settings.SOCKSEnable) {
return {
protocol: 'socks' as Protocol,
host: settings.SOCKSProxy as string,
port: settings.SOCKSPort as number,
}
} */
} catch (err) {
console.error(err);
}
return null;
}
async function getWin32SystemHttpProxySettings(): Promise<ISimpleProxySetting | null> {
const settings = await getProxyWindows();
return settings?.https || settings?.http || null;
}
async function getLinuxSystemHttpProxySettings(): Promise<ISimpleProxySetting | null> {
// TODO: Implement
return null;
}
export type ISysProxyInfo = {
config: ISimpleProxySetting | null;
systemProxySettings: IAppProxyConf['systemProxySettings'];
};
const state: {
fetched: boolean;
config: ISysProxyInfo['config'];
} = {
fetched: false,
config: null,
};
export async function getSystemProxyInfo(forceReload = false) {
const result: ISysProxyInfo = {
config: state.config ? { ...state.config } : null,
systemProxySettings: undefined,
};
if (!state.fetched || forceReload) {
result.config = isWin32
? await getWin32SystemHttpProxySettings()
: isLinux ? await getLinuxSystemHttpProxySettings() : await getDarwinSystemHttpProxySettings();
state.fetched = true;
}
if (result.config) {
const port = coerceNumber(result.config.port, 0);
result.systemProxySettings = {
protocol: result.config.protocol as 'http',
host: result.config.host,
port,
};
} else {
result.systemProxySettings = undefined;
}
return result;
} Then ran
Indeed, the Edit: Managed to get one step further from 5. to 6. 😄
With this one, I'm stuck. I didn't manage to fix it unfortunately. Would be amazing if someone from the dev team can comment on that. May be @richardo2016x ? Thank you. |
Bumping this issue. I also need a desktop version for Linux. Maybe appimage, flatkpak or snap in order not to worry about distribution-specific formats. |
I, too, really, really, really want to see a Linux desktop version. I can't run the extension (wrong browser), and I can't run the mobile app (my device has AOSP with no GSF and no Play Store). |
Why you do not want to support Linux? In crypto so many people use Linux. |
I'd like to run Rabby Desktop on linux. If you have any pointers to how this can be accomplished I can maybe try to add this myself.
The text was updated successfully, but these errors were encountered: