Trying vscodium out

This commit is contained in:
Emmet
2025-05-28 18:28:25 -05:00
parent 54bd50e866
commit a0c30fa91a
7 changed files with 119 additions and 9 deletions

View File

@ -15,7 +15,8 @@
# programs # programs
browser = "qutebrowser"; browser = "qutebrowser";
brave.enable = true; brave.enable = true;
editor = "emacs"; editor = "vscodium";
emacs.enable = true;
ranger.enable = true; ranger.enable = true;
yazi.enable = true; yazi.enable = true;
git.enable = true; git.enable = true;

View File

@ -15,7 +15,8 @@
# programs # programs
browser = "qutebrowser"; browser = "qutebrowser";
brave.enable = true; brave.enable = true;
editor = "emacs"; editor = "vscodium";
emacs.enable = true;
ranger.enable = true; ranger.enable = true;
yazi.enable = true; yazi.enable = true;
git.enable = true; git.enable = true;

View File

@ -14,7 +14,7 @@
# programs # programs
browser = "brave"; browser = "brave";
editor = "kate"; editor = "vscodium";
ranger.enable = true; ranger.enable = true;
yazi.enable = true; yazi.enable = true;
git.enable = true; git.enable = true;

View File

@ -14,7 +14,8 @@
# programs # programs
browser = "qutebrowser"; browser = "qutebrowser";
brave.enable = true; brave.enable = true;
editor = "emacs"; editor = "vscodium";
emacs.enable = true;
ranger.enable = true; ranger.enable = true;
yazi.enable = true; yazi.enable = true;
git.enable = true; git.enable = true;
@ -42,7 +43,7 @@
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
openldap ldapvi openldap ldapvi rclone teams-for-linux
]; ];
home.sessionVariables = lib.mkIf config.userSettings.hyprland.enable { home.sessionVariables = lib.mkIf config.userSettings.hyprland.enable {

View File

@ -6,9 +6,9 @@ let
in { in {
options = { options = {
userSettings.editor = lib.mkOption { userSettings.editor = lib.mkOption {
default = "emacs"; default = "vscodium";
description = "Default editor"; description = "Default editor";
type = lib.types.enum [ "emacs" "kate" ]; type = lib.types.enum [ "emacs" "kate" "vscodium" ];
# TODO add more editors # TODO add more editors
#type = lib.types.enum [ "emacs" "vim" "nvim" "neovide" "nano" "micro" "vscodium" "kate" "pulsar" ]; #type = lib.types.enum [ "emacs" "vim" "nvim" "neovide" "nano" "micro" "vscodium" "kate" "pulsar" ];
}; };
@ -20,13 +20,25 @@ in {
config = { config = {
userSettings.emacs.enable = lib.mkIf (config.userSettings.editor == "emacs") true; userSettings.emacs.enable = lib.mkIf (config.userSettings.editor == "emacs") true;
userSettings.vscodium.enable = lib.mkIf (config.userSettings.editor == "vscodium") true;
home.packages = with pkgs; home.packages = with pkgs;
lib.optionals (editor == "kate") [ kdePackages.kate]; lib.optionals (editor == "kate") [ kdePackages.kate];
userSettings.spawnEditor = lib.mkMerge [ userSettings.spawnEditor = lib.mkMerge [
(lib.mkIf (editor == "emacs") "emacsclient -c -a 'emacs'") (lib.mkIf (editor == "emacs") "emacsclient -c -a 'emacs'")
(lib.mkIf (editor == "neovide") "neovide -- --listen /tmp/nvimsocket") (lib.mkIf (editor == "neovide") "neovide -- --listen /tmp/nvimsocket")
(lib.mkIf (editor == "vscodium") "codium -n")
(lib.mkIf (builtins.elem editor [ "vim" "nvim" "nano" "micro" ]) ("exec " + term + " -e " + editor)) (lib.mkIf (builtins.elem editor [ "vim" "nvim" "nano" "micro" ]) ("exec " + term + " -e " + editor))
(lib.mkIf (!(builtins.elem editor [ "emacs" "vim" "nvim" "neovide" "nano" "micro"])) editor) (lib.mkIf (!(builtins.elem editor [ "emacs" "vim" "nvim" "neovide" "nano" "micro" "vscodium"])) editor)
]; ];
home.sessionVariables = {
EDITOR =
lib.mkMerge [
(lib.mkIf (editor == "emacs") "emacsclient -c")
(lib.mkIf (editor == "neovide") "neovide -- --listen /tmp/nvimsocket")
(lib.mkIf (editor == "vscodium") "codium -n")
(lib.mkIf (builtins.elem editor [ "vim" "nvim" "nano" "micro" ]) ("exec " + term + " -e " + editor))
(lib.mkIf (!(builtins.elem editor [ "emacs" "vim" "nvim" "neovide" "nano" "micro" "vscodium" ])) editor)
];
};
}; };
} }

View File

@ -17,8 +17,8 @@ in {
cura-appimage cura-appimage
arduino-ide arduino-ide
graphviz graphviz
vscodium-fhs
]; ];
userSettings.vscodium.enable = true;
xdg.desktopEntries.cura = lib.mkForce { xdg.desktopEntries.cura = lib.mkForce {
name = "Ultimaker Cura"; name = "Ultimaker Cura";
genericName = "3D Printing Software"; genericName = "3D Printing Software";

View File

@ -0,0 +1,95 @@
{ config, lib, pkgs, ... }:
let
cfg = config.userSettings.vscodium;
in {
options = {
userSettings.vscodium = {
enable = lib.mkEnableOption "Enable vscodium";
};
};
config = lib.mkIf cfg.enable {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
profiles.default.extensions = with pkgs.vscode-extensions; [
vscodevim.vim
kahole.magit
jnoortheen.nix-ide
mkhl.direnv
geequlim.godot-tools
yzhang.markdown-all-in-one
];
profiles.default.userSettings = {
"keyboard.dispatch" = "keyCode";
};
profiles.default.keybindings = [
{
"key" = "g g";
"command" = "cursorTop";
"when" = "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/" ;
}
{ "key" = "g r";
"command" = "magit.refresh";
"when" = "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/" ;
}
{
"key" = "tab";
"command" = "extension.vim_tab";
"when" = "editorTextFocus && vim.active && !inDebugRepl && vim.mode != 'Insert' && editorLangId != 'magit'";
}
{
"key" = "tab";
"command" = "-extension.vim_tab";
}
{
"key" = "x";
"command" = "magit.discard-at-point";
"when" = "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/";
}
{
"key" = "k";
"command" = "-magit.discard-at-point";
}
{
"key" = "-";
"command" = "magit.reverse-at-point";
"when" = "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/";
}
{
"key" = "v";
"command" = "-magit.reverse-at-point";
}
{
"key" = "shift+-";
"command" = "magit.reverting";
"when" = "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/";
}
{
"key" = "shift+v";
"command" = "-magit.reverting";
}
{
"key" = "shift+o";
"command" = "magit.resetting";
"when" = "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/";
}
{
"key" = "shift+x";
"command" = "-magit.resetting";
}
{
"key" = "x";
"command" = "-magit.reset-mixed";
}
{
"key" = "ctrl+u x";
"command" = "-magit.reset-hard";
}
];
mutableExtensionsDir = false;
};
stylix.targets.vscode.enable = true;
};
}