Compare commits

..

No commits in common. "c6a31bb751b15cd8acd31d53cbe449d665fce2ab" and "5c8bdec1cb9d69a99441a53592cf1507b735b58d" have entirely different histories.

23 changed files with 317 additions and 481 deletions

View file

@ -24,8 +24,7 @@
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz"; catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz";
}; };
outputs = outputs = { nixpkgs, home-manager, ... }@inputs:
{ nixpkgs, home-manager, ... }@inputs:
let let
user = "cswimr"; user = "cswimr";
system = "x86_64-linux"; system = "x86_64-linux";
@ -34,8 +33,7 @@
overlays = [ inputs.catppuccin-vsc.overlays.default ]; overlays = [ inputs.catppuccin-vsc.overlays.default ];
config.allowUnfree = true; config.allowUnfree = true;
}; };
in in {
{
nixosConfigurations = { nixosConfigurations = {
eclipse = nixpkgs.lib.nixosSystem { eclipse = nixpkgs.lib.nixosSystem {
system = system; system = system;
@ -78,7 +76,8 @@
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ]; sharedModules =
[ inputs.plasma-manager.homeManagerModules.plasma-manager ];
backupFileExtension = "bak"; backupFileExtension = "bak";
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
@ -93,7 +92,8 @@
./home-manager/user.nix ./home-manager/user.nix
./home-manager/vscode.nix ./home-manager/vscode.nix
{ {
programs.git.extraConfig.user.signingkey = "0EC431A8DA8F8087"; programs.git.extraConfig.user.signingkey =
"0EC431A8DA8F8087";
} }
]; ];
}; };
@ -141,7 +141,8 @@
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ]; sharedModules =
[ inputs.plasma-manager.homeManagerModules.plasma-manager ];
backupFileExtension = "bak"; backupFileExtension = "bak";
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
@ -156,7 +157,8 @@
./home-manager/user.nix ./home-manager/user.nix
./home-manager/vscode.nix ./home-manager/vscode.nix
{ {
programs.git.extraConfig.user.signingkey = "082F226A1D8C0860"; programs.git.extraConfig.user.signingkey =
"082F226A1D8C0860";
} }
]; ];
}; };

View file

@ -18,89 +18,62 @@
"spectacle-screenshot" = { "spectacle-screenshot" = {
name = "Spectacle Screenshot"; name = "Spectacle Screenshot";
command = "/etc/nixos/scripts/py/spectacle-screenshot.py"; command = "/etc/nixos/scripts/py/spectacle-screenshot.py";
comment = "Take a screenshot of a region on the screen and automatically upload it to Zipline"; comment =
keys = [ "Take a screenshot of a region on the screen and automatically upload it to Zipline";
"Print" keys = [ "Print" "Meta+S" ];
"Meta+S"
];
}; };
"spectacle-recording" = { "spectacle-recording" = {
name = "Spectacle Recording"; name = "Spectacle Recording";
command = "/etc/nixos/scripts/py/spectacle-screenshot.py --record"; command = "/etc/nixos/scripts/py/spectacle-screenshot.py --record";
comment = "Record a region on the screen and automatically upload it to Zipline"; comment =
keys = [ "Record a region on the screen and automatically upload it to Zipline";
"Shift+Print" keys = [ "Shift+Print" "Meta+Shift+S" ];
"Meta+Shift+S"
];
}; };
}; };
panels = [ panels = [{
{ location = "bottom";
location = "bottom"; screen = "all";
screen = "all"; widgets = [
widgets = [ {
{ kickoff = {
kickoff = { sortAlphabetically = true;
sortAlphabetically = true; icon = "nix-snowflake";
icon = "nix-snowflake";
};
}
{
iconTasks = {
launchers = [
"applications:zen.desktop"
"applications:vesktop.desktop"
"applications:steam.desktop"
"applications:org.prismlauncher.PrismLauncher.desktop"
"applications:code.desktop"
"applications:org.kde.konsole.desktop"
"applications:org.kde.dolphin.desktop"
];
};
}
"org.kde.plasma.marginsseperator"
"org.kde.plasma.systemtray"
"org.kde.plasma.colorpicker"
{
digitalClock = {
calendar.firstDayOfWeek = "sunday";
date.format.custom = "dddd, MMMM d | M/d/yyyy";
time = {
format = "12h";
showSeconds = "always";
};
timeZone = {
format = "offset";
alwaysShow = true;
};
font = null;
# {
# family = "Noto Sans";
# style = "Medium";
# weight = 100;
# size = 18;
# };
};
}
#FIXME - I can't figure out what this id is supposed to be 😭
#"org.kde.plasma.peekatdesktop"
];
}
];
window-rules = [
{
description = "Application settings for Code";
match = {
window-class = {
value = "code code-url-handler";
type = "exact";
}; };
}
{
iconTasks = {
launchers = [
"applications:zen"
"applications:vesktop"
"applications:steam"
"applications:org.prismlauncher.PrismLauncher"
"applications:code"
"applications:org.kde.konsole"
"applications:org.kde.dolphin"
];
};
}
{
digitalClock = {
calendar.firstDayOfWeek = "sunday";
time.format = "12h";
};
}
];
}];
window-rules = [{
description = "Application settings for Code";
match = {
window-class = {
value = "code code-url-handler";
type = "exact";
}; };
apply = { };
desktopfile = "/etc/profiles/per-user/cswimr/share/applications/code.desktop"; apply = {
}; desktopfile =
} "/etc/profiles/per-user/cswimr/share/applications/code.desktop";
]; };
}];
spectacle.shortcuts = { spectacle.shortcuts = {
captureActiveWindow = [ ]; captureActiveWindow = [ ];
captureCurrentMonitor = [ ]; captureCurrentMonitor = [ ];
@ -110,10 +83,10 @@
launch = [ ]; launch = [ ];
}; };
configFile = { configFile = {
kcminputrc.Keyboard.NumLock.value = 0; # These three plugins have no higher level modules
kwinrc.Plugins.sheetEnabled = true; "kwinrc"."Plugins"."sheetEnabled" = true;
kwinrc.Plugins.wobblywindowsEnabled = true; "kwinrc"."Plugins"."wobblywindowsEnabled" = true;
kwinrc.Plugins.zoomEnabled = false; "kwinrc"."Plugins"."zoomEnabled" = false;
}; };
}; };
} }

View file

@ -1,21 +1,22 @@
{ { pkgs, config, user, ... }: {
pkgs,
config,
user,
...
}:
{
home.username = user; home.username = user;
home.homeDirectory = "/home/${user}"; home.homeDirectory = "/home/${user}";
home.file = { home.file = {
".face.icon".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/assets/img/clownfish.png"; ".face.icon".source =
".config/fastfetch/config.jsonc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/fastfetch.jsonc"; config.lib.file.mkOutOfStoreSymlink "/etc/nixos/assets/img/clownfish.png";
".psqlrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/.psqlrc"; ".config/fastfetch/config.jsonc".source =
".config/btop/btop.conf".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/btop.conf"; config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/fastfetch.jsonc";
".config/btop/themes/catppuccin_mocha.theme".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/themes/btop.theme"; ".psqlrc".source =
".config/glow/glow.yml".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/glow.yml"; config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/.psqlrc";
".config/glow/theme.json".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/themes/glow.json"; ".config/btop/btop.conf".source =
config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/btop.conf";
".config/btop/themes/catppuccin_mocha.theme".source =
config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/themes/btop.theme";
".config/glow/glow.yml".source =
config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/glow.yml";
".config/glow/theme.json".source =
config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/themes/glow.json";
}; };
# link the configuration file in current directory to the specified location in home directory # link the configuration file in current directory to the specified location in home directory
@ -48,32 +49,19 @@
userName = user; userName = user;
userEmail = "seaswimmerthefsh@gmail.com"; userEmail = "seaswimmerthefsh@gmail.com";
extraConfig = { extraConfig = {
commit = { commit = { gpgsign = true; };
gpgsign = true;
};
signing = { signing = {
signByDefault = true; signByDefault = true;
}; };
init = { init = { defaultBranch = "master"; };
defaultBranch = "master"; safe = { directory = "/etc/nixos"; };
};
safe = {
directory = "/etc/nixos";
};
url = { url = {
"git@coastalcommits.com:" = { "git@coastalcommits.com:" = {
insteadOf = [ insteadOf =
"https://www.coastalcommits.com/" [ "https://www.coastalcommits.com/" "cc:" "coastalcommits:" ];
"cc:"
"coastalcommits:"
];
}; };
"git@github.com:" = { "git@github.com:" = {
insteadOf = [ insteadOf = [ "https://github.com/" "gh:" "github:" ];
"https://github.com/"
"gh:"
"github:"
];
}; };
}; };
hub.protocol = "ssh"; hub.protocol = "ssh";

View file

@ -1,64 +1,39 @@
{ { pkgs, config, system, inputs, ... }: rec {
pkgs,
config,
system,
inputs,
...
}:
rec {
# Make VSCode config writable # Make VSCode config writable
# https://github.com/nix-community/home-manager/issues/1800#issuecomment-2262881846 # https://github.com/nix-community/home-manager/issues/1800#issuecomment-2262881846
home.activation.makeVSCodeConfigWritable = home.activation.makeVSCodeConfigWritable = let
let configDirName = {
configDirName = "vscode" = "Code";
{ "vscode-insiders" = "Code - Insiders";
"vscode" = "Code"; "vscodium" = "VSCodium";
"vscode-insiders" = "Code - Insiders"; }.${programs.vscode.package.pname};
"vscodium" = "VSCodium"; configPath = "${config.xdg.configHome}/${configDirName}/User/settings.json";
} in {
.${programs.vscode.package.pname}; after = [ "writeBoundary" ];
configPath = "${config.xdg.configHome}/${configDirName}/User/settings.json"; before = [ ];
in data = ''
{ install -m 0640 "$(readlink ${configPath})" ${configPath}
after = [ "writeBoundary" ]; '';
before = [ ]; };
data = ''
install -m 0640 "$(readlink ${configPath})" ${configPath}
'';
};
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs.vscode.fhsWithPackages ( package = pkgs.vscode.fhsWithPackages
ps: with pkgs; [ (ps: with pkgs; [ dotnetCorePackages.sdk_8_0 jdk21 go ]);
dotnetCorePackages.sdk_8_0
jdk21
go
]
);
extensions = extensions =
with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace; with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace;
with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace-release; with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace-release; [
[
# Themes # Themes
(pkgs.catppuccin-vsc.override { (pkgs.catppuccin-vsc.override {
accent = "blue"; accent = "blue";
extraBordersEnabled = true; extraBordersEnabled = true;
italicKeywords = false; italicKeywords = false;
customUIColors = { customUIColors = {
mocha = { mocha = { "statusBar.foreground" = "accent"; };
"statusBar.foreground" = "accent"; macchiato = { "statusBar.foreground" = "accent"; };
}; frappe = { "statusBar.foreground" = "accent"; };
macchiato = { latte = { "statusBar.foreground" = "accent"; };
"statusBar.foreground" = "accent";
};
frappe = {
"statusBar.foreground" = "accent";
};
latte = {
"statusBar.foreground" = "accent";
};
}; };
}) })
catppuccin.catppuccin-vsc-icons catppuccin.catppuccin-vsc-icons
@ -210,21 +185,15 @@ rec {
} }
{ {
"scope" = "variable.other.readwrite"; "scope" = "variable.other.readwrite";
"settings" = { "settings" = { "foreground" = "#82eaf0"; };
"foreground" = "#82eaf0";
};
} }
{ {
"scope" = "keyword.operator"; "scope" = "keyword.operator";
"settings" = { "settings" = { "foreground" = "#EBA0AC"; };
"foreground" = "#EBA0AC";
};
} }
{ {
"scope" = "meta.block.paradox"; "scope" = "meta.block.paradox";
"settings" = { "settings" = { "foreground" = "#EBA0AC"; };
"foreground" = "#EBA0AC";
};
} }
{ {
"scope" = "meta.shebang.shell"; "scope" = "meta.shebang.shell";
@ -241,16 +210,13 @@ rec {
}; };
} }
{ {
"scope" = "string.quoted.double.shell variable.other.normal.shell"; "scope" =
"settings" = { "string.quoted.double.shell variable.other.normal.shell";
"foreground" = "#82e5f0"; "settings" = { "foreground" = "#82e5f0"; };
};
} }
{ {
"scope" = "variable.other.property.ts"; "scope" = "variable.other.property.ts";
"settings" = { "settings" = { "foreground" = "#32d5e7"; };
"foreground" = "#32d5e7";
};
} }
]; ];
}; };
@ -279,9 +245,7 @@ rec {
"editor.formatOnSaveMode" = "file"; "editor.formatOnSaveMode" = "file";
"files.autoSave" = "onFocusChange"; "files.autoSave" = "onFocusChange";
}; };
"[markdown]" = { "[markdown]" = { "files.trimTrailingWhitespace" = false; };
"files.trimTrailingWhitespace" = false;
};
"yaml.schemas" = { "yaml.schemas" = {
"https://json.schemastore.org/github-workflow.json" = [ "https://json.schemastore.org/github-workflow.json" = [
".github/workflows/*.{yml,yaml}" ".github/workflows/*.{yml,yaml}"
@ -292,23 +256,29 @@ rec {
"yaml.schemaStore.enable" = true; "yaml.schemaStore.enable" = true;
"nix.enableLanguageServer" = true; "nix.enableLanguageServer" = true;
"nix.serverSettings" = { "nix.serverSettings" = {
"nil" = { "nil" = { "formatting" = { "command" = [ "nixfmt" ]; }; };
"formatting" = {
"command" = [ "nixfmt" ];
};
};
}; };
"nix.serverPath" = "nil"; "nix.serverPath" = "nil";
"vscord.status.image.large.debugging.key" = "https://vscord.catppuccin.com/mocha/debugging.webp"; "vscord.status.image.large.debugging.key" =
"vscord.status.image.large.editing.key" = "https://vscord.catppuccin.com/mocha/{lang}.webp"; "https://vscord.catppuccin.com/mocha/debugging.webp";
"vscord.status.image.large.idle.key" = "https://vscord.catppuccin.com/mocha/idle-{app_id}.webp"; "vscord.status.image.large.editing.key" =
"vscord.status.image.large.notInFile.key" = "https://vscord.catppuccin.com/mocha/idle-{app_id}.webp"; "https://vscord.catppuccin.com/mocha/{lang}.webp";
"vscord.status.image.large.viewing.key" = "https://vscord.catppuccin.com/mocha/{lang}.webp"; "vscord.status.image.large.idle.key" =
"vscord.status.image.small.debugging.key" = "https://vscord.catppuccin.com/mocha/debugging.webp"; "https://vscord.catppuccin.com/mocha/idle-{app_id}.webp";
"vscord.status.image.small.editing.key" = "https://vscord.catppuccin.com/mocha/{app_id}.webp"; "vscord.status.image.large.notInFile.key" =
"vscord.status.image.small.idle.key" = "https://vscord.catppuccin.com/mocha/idle.webp"; "https://vscord.catppuccin.com/mocha/idle-{app_id}.webp";
"vscord.status.image.small.notInFile.key" = "https://vscord.catppuccin.com/mocha/idle.webp"; "vscord.status.image.large.viewing.key" =
"vscord.status.image.small.viewing.key" = "https://vscord.catppuccin.com/mocha/{app_id}.webp"; "https://vscord.catppuccin.com/mocha/{lang}.webp";
"vscord.status.image.small.debugging.key" =
"https://vscord.catppuccin.com/mocha/debugging.webp";
"vscord.status.image.small.editing.key" =
"https://vscord.catppuccin.com/mocha/{app_id}.webp";
"vscord.status.image.small.idle.key" =
"https://vscord.catppuccin.com/mocha/idle.webp";
"vscord.status.image.small.notInFile.key" =
"https://vscord.catppuccin.com/mocha/idle.webp";
"vscord.status.image.small.viewing.key" =
"https://vscord.catppuccin.com/mocha/{app_id}.webp";
"git.enableSmartCommit" = true; "git.enableSmartCommit" = true;
"git.autofetch" = true; "git.autofetch" = true;
"git.confirmSync" = false; "git.confirmSync" = false;
@ -322,21 +292,19 @@ rec {
"editor.accessibilitySupport" = "off"; "editor.accessibilitySupport" = "off";
"git.inputValidationSubjectLength" = null; "git.inputValidationSubjectLength" = null;
"git.inputValidationLength" = 150; "git.inputValidationLength" = 150;
"editor.fontLigatures" = "'cv01', 'cv02', 'ss05', 'ss08', 'ss03', 'cv29', 'cv30', 'cv11'"; "editor.fontLigatures" =
"'cv01', 'cv02', 'ss05', 'ss08', 'ss03', 'cv29', 'cv30', 'cv11'";
"workbench.iconTheme" = "catppuccin-latte"; "workbench.iconTheme" = "catppuccin-latte";
"catppuccin.syncWithIconPack" = false;
"codesnap.shutterAction" = "copy"; "codesnap.shutterAction" = "copy";
"codesnap.transparentBackground" = true; "codesnap.transparentBackground" = true;
"codesnap.realLineNumbers" = true; "codesnap.realLineNumbers" = true;
"codesnap.roundedCorners" = true; "codesnap.roundedCorners" = true;
"codesnap.showWindowTitle" = true; "codesnap.showWindowTitle" = true;
"codesnap.showWindowControls" = false; "codesnap.showWindowControls" = false;
"gitlens.remotes" = [ "gitlens.remotes" = [{
{ "domain" = "www.coastalcommits.com";
"domain" = "www.coastalcommits.com"; "type" = "Gitea";
"type" = "Gitea"; }];
}
];
"markdownlint.config" = { "markdownlint.config" = {
"ol-prefix" = false; "ol-prefix" = false;
"html" = false; "html" = false;
@ -357,27 +325,26 @@ rec {
"**/xonsh/*.py" = "xonsh"; "**/xonsh/*.py" = "xonsh";
}; };
"editor.semanticHighlighting.enabled" = true; "editor.semanticHighlighting.enabled" = true;
"[css]" = { "[css]" = { "editor.defaultFormatter" = "vscode.css-language-features"; };
"editor.defaultFormatter" = "vscode.css-language-features";
};
"git.ignoreRebaseWarning" = true; "git.ignoreRebaseWarning" = true;
"remote.autoForwardPortsSource" = "hybrid"; "remote.autoForwardPortsSource" = "hybrid";
"git.replaceTagsWhenPull" = true; "git.replaceTagsWhenPull" = true;
"redhat.telemetry.enabled" = true; "redhat.telemetry.enabled" = true;
"editor.fontSize" = 14; "editor.fontSize" = 14;
"workbench.colorTheme" = "Catppuccin Mocha"; "workbench.colorTheme" = "Catppuccin Mocha";
"editor.codeLensFontFamily" = "'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'"; "editor.codeLensFontFamily" =
"editor.inlayHints.fontFamily" = "'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font', 'FiraCode Nerd Font Light'"; "'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'";
"editor.fontFamily" = "'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'"; "editor.inlayHints.fontFamily" =
"'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font', 'FiraCode Nerd Font Light'";
"editor.fontFamily" =
"'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'";
"explorer.confirmDelete" = false; "explorer.confirmDelete" = false;
"window.confirmSaveUntitledWorkspace" = false; "window.confirmSaveUntitledWorkspace" = false;
"cwtools.cache.stellaris" = "/bulk/steam/steamapps/common/Stellaris"; "cwtools.cache.stellaris" = "/bulk/steam/steamapps/common/Stellaris";
"python.analysis.inlayHints.callArgumentNames" = "partial"; "python.analysis.inlayHints.callArgumentNames" = "partial";
"python.analysis.inlayHints.functionReturnTypes" = true; "python.analysis.inlayHints.functionReturnTypes" = true;
"explorer.confirmDragAndDrop" = false; "explorer.confirmDragAndDrop" = false;
"editor.unicodeHighlight.allowedLocales" = { "editor.unicodeHighlight.allowedLocales" = { ru = true; };
ru = true;
};
"terminal.integrated.defaultProfile.linux" = "xonsh"; "terminal.integrated.defaultProfile.linux" = "xonsh";
"explorer.confirmPasteNative" = false; "explorer.confirmPasteNative" = false;
"editor.renderWhitespace" = "none"; "editor.renderWhitespace" = "none";
@ -387,7 +354,8 @@ rec {
"*.jsx" = "\${capture}.js"; "*.jsx" = "\${capture}.js";
"*.tsx" = "\${capture}.ts"; "*.tsx" = "\${capture}.ts";
"tsconfig.json" = "tsconfig.*.json"; "tsconfig.json" = "tsconfig.*.json";
"package.json" = "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb"; "package.json" =
"package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb";
"Cargo.toml" = "Cargo.lock"; "Cargo.toml" = "Cargo.lock";
"*.sqlite" = "\${capture}.\${extname}-*"; "*.sqlite" = "\${capture}.\${extname}-*";
"*.db" = "\${capture}.\${extname}-*"; "*.db" = "\${capture}.\${extname}-*";
@ -400,9 +368,7 @@ rec {
"editor.defaultFormatter" = "shakram02.bash-beautify"; "editor.defaultFormatter" = "shakram02.bash-beautify";
}; };
"vscord.app.name" = "Visual Studio Code"; "vscord.app.name" = "Visual Studio Code";
"workbench.editorAssociations" = { "workbench.editorAssociations" = { "*.db" = "sqlite3-editor.editor"; };
"*.db" = "sqlite3-editor.editor";
};
"vs-code-prettier-eslint.prettierLast" = false; "vs-code-prettier-eslint.prettierLast" = false;
"typescript.updateImportsOnFileMove.enabled" = "always"; "typescript.updateImportsOnFileMove.enabled" = "always";
"supermaven.allowGitignore" = true; "supermaven.allowGitignore" = true;
@ -413,14 +379,11 @@ rec {
"editor.defaultFormatter" = "vscode.json-language-features"; "editor.defaultFormatter" = "vscode.json-language-features";
}; };
"go.toolsManagement.autoUpdate" = true; "go.toolsManagement.autoUpdate" = true;
"remote.SSH.remotePlatform" = { "remote.SSH.remotePlatform" = { "eclipse" = "linux"; };
"eclipse" = "linux";
};
"terminal.integrated.fontWeightBold" = "bold"; "terminal.integrated.fontWeightBold" = "bold";
"terminal.integrated.fontFamily" = "'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'"; "terminal.integrated.fontFamily" =
"[jsonc]" = { "'ComicCodeLigatures Nerd Font', 'Comic Code Ligatures', 'FiraCode Nerd Font'";
"editor.defaultFormatter" = "esbenp.prettier-vscode"; "[jsonc]" = { "editor.defaultFormatter" = "esbenp.prettier-vscode"; };
};
}; };
}; };
} }

View file

@ -1,54 +1,37 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ imports =
(modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" "sr_mod" "rtsx_usb_sdmmc" ];
"xhci_pci"
"ahci"
"nvme"
"usbhid"
"sd_mod"
"sr_mod"
"rtsx_usb_sdmmc"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/f65ec459-c974-4032-8224-fa78c57527c2"; { device = "/dev/disk/by-uuid/f65ec459-c974-4032-8224-fa78c57527c2";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/484E-279A"; { device = "/dev/disk/by-uuid/484E-279A";
fsType = "vfat"; fsType = "vfat";
options = [ options = [ "fmask=0077" "dmask=0077" ];
"fmask=0077" };
"dmask=0077"
fileSystems."/bulk" =
{ device = "/dev/disk/by-uuid/3b8e0789-def6-45dd-8eff-7b55b74569ce";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/4eab8c8f-85c5-4a04-a03c-e111ada06ec0"; }
]; ];
};
fileSystems."/bulk" = {
device = "/dev/disk/by-uuid/3b8e0789-def6-45dd-8eff-7b55b74569ce";
fsType = "ext4";
};
swapDevices = [
{ device = "/dev/disk/by-uuid/4eab8c8f-85c5-4a04-a03c-e111ada06ec0"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,33 +1,22 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ imports =
(modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" ];
"xhci_pci"
"ahci"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/658d4465-7bac-4e12-ad92-00fef8abcfe3"; { device = "/dev/disk/by-uuid/658d4465-7bac-4e12-ad92-00fef8abcfe3";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [ ];

View file

@ -2,8 +2,7 @@
let let
gnomeExtensions = with pkgs.gnomeExtensions; [ totp ]; gnomeExtensions = with pkgs.gnomeExtensions; [ totp ];
packages = with pkgs; [ fastfetch ]; packages = with pkgs; [ fastfetch ];
in in {
{
imports = [ imports = [
../template.nix ../template.nix
#../../../nixos/shell.nix #../../../nixos/shell.nix

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
imports = [ imports = [
../template.nix ../template.nix
../../../nixos/shell.nix ../../../nixos/shell.nix

View file

@ -1,25 +1,16 @@
{ pkgs, ... }: { pkgs, ... }: {
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# catppuccin # catppuccin
(catppuccin.override { (catppuccin.override {
variant = "mocha"; variant = "mocha";
accent = "blue"; accent ="blue";
themeList = [ themeList = [ "bat" "lazygit" ];
"bat"
"lazygit"
];
}) })
catppuccin-cursors catppuccin-cursors
# catppuccin for kde plasma # catppuccin for kde plasma
(catppuccin-kde.override { (catppuccin-kde.override {
flavour = [ flavour = [ "mocha" "macchiato" "frappe" "latte" ];
"mocha"
"macchiato"
"frappe"
"latte"
];
accents = [ "blue" ]; accents = [ "blue" ];
winDecStyles = [ "classic" ]; winDecStyles = [ "classic" ];
}) })

View file

@ -5,14 +5,8 @@
{ {
nix = { nix = {
settings = { settings = {
experimental-features = [ experimental-features = [ "nix-command" "flakes" ];
"nix-command" trusted-users = [ "root" "@wheel" ];
"flakes"
];
trusted-users = [
"root"
"@wheel"
];
}; };
}; };
@ -96,11 +90,7 @@
users.users.cswimr = { users.users.cswimr = {
isNormalUser = true; isNormalUser = true;
description = "Seaswimmer"; description = "Seaswimmer";
extraGroups = [ extraGroups = [ "networkmanager" "wheel" "docker" ];
"networkmanager"
"wheel"
"docker"
];
openssh = { openssh = {
authorizedKeys.keys = [ authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILOka7plvb0hAwDq04mb+hs+a+P3XDhyYyvhw1L5tvlz cswimr@eclipse" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILOka7plvb0hAwDq04mb+hs+a+P3XDhyYyvhw1L5tvlz cswimr@eclipse"

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
environment.systemPackages = with pkgs; [ devenv ]; environment.systemPackages = with pkgs; [ devenv ];
programs.direnv = { programs.direnv = {

View file

@ -1,5 +1,4 @@
{ lib, ... }: { lib, ... }: {
{
environment.variables = { environment.variables = {
PATH = "$PATH:/etc/nixos/scripts"; PATH = "$PATH:/etc/nixos/scripts";
EDITOR = "nvim"; EDITOR = "nvim";

View file

@ -1,11 +1,8 @@
{ {
services.flatpak = { services.flatpak = {
enable = true; enable = true;
packages = [ packages = [
{ { flatpakref = "https://sober.vinegarhq.org/sober.flatpakref"; sha256 = "1pj8y1xhiwgbnhrr3yr3ybpfis9slrl73i0b1lc9q89vhip6ym2l"; }
flatpakref = "https://sober.vinegarhq.org/sober.flatpakref"; ];
sha256 = "1pj8y1xhiwgbnhrr3yr3ybpfis9slrl73i0b1lc9q89vhip6ym2l"; };
}
];
};
} }

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play

View file

@ -1,12 +1,8 @@
{ {
programs.git = { programs.git = {
config = { config = {
init = { init = { defaultBranch = "master"; };
defaultBranch = "master"; safe = { directory = "/etc/nixos"; };
};
safe = {
directory = "/etc/nixos";
};
url = { url = {
"https://www.coastalcommits.com/" = { "https://www.coastalcommits.com/" = {
insteadOf = [ insteadOf = [

View file

@ -1,10 +1,4 @@
{ { pkgs, inputs, system, lib, ... }:
pkgs,
inputs,
system,
lib,
...
}:
let let
kdePackages = with pkgs.kdePackages; [ plasma-browser-integration ]; kdePackages = with pkgs.kdePackages; [ plasma-browser-integration ];
packages = with pkgs; [ packages = with pkgs; [
@ -19,9 +13,9 @@ let
libnotify libnotify
]; ];
flakePackages = with inputs; [ zen-browser.packages.${system}.specific ]; flakePackages = with inputs; [ zen-browser.packages.${system}.specific ];
in in {
{ environment.systemPackages =
environment.systemPackages = lib.lists.unique (kdePackages ++ packages ++ flakePackages); lib.lists.unique (kdePackages ++ packages ++ flakePackages);
# Enable the X11 windowing system. # Enable the X11 windowing system.
# You can leave this disabled if you're only using the Wayland session. # You can leave this disabled if you're only using the Wayland session.
@ -50,7 +44,8 @@ in
enable = true; enable = true;
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "default.target" ]; wantedBy = [ "default.target" ];
description = "A GUI to monitor and manage Tailscale on your Linux desktop, built using KDE Frameworks and Kirigami2."; description =
"A GUI to monitor and manage Tailscale on your Linux desktop, built using KDE Frameworks and Kirigami2.";
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
ExecStart = "${pkgs.ktailctl}/bin/ktailctl"; ExecStart = "${pkgs.ktailctl}/bin/ktailctl";

View file

@ -1,9 +1,6 @@
{ config, ... }: { config, ... }: {
{
# Enable OpenGL # Enable OpenGL
hardware.graphics = { hardware.graphics = { enable = true; };
enable = true;
};
# Load nvidia driver for Xorg / Wayland # Load nvidia driver for Xorg / Wayland
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: { pkgs, ... }: {
{
programs.nixvim = { programs.nixvim = {
extraPackages = with pkgs; [ fd ]; extraPackages = with pkgs; [ fd ];
enable = true; enable = true;

View file

@ -1,10 +1,4 @@
{ { pkgs, lib, inputs, system, ... }:
pkgs,
lib,
inputs,
system,
...
}:
let let
# List of packages installed in system profile. To search, run: # List of packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
@ -44,7 +38,7 @@ let
lazygit lazygit
lazydocker lazydocker
bat bat
nixfmt-rfc-style nixfmt
zenity zenity
forgejo-runner # for some reason this installs forgejo-runner as act_runner forgejo-runner # for some reason this installs forgejo-runner as act_runner
libwebp libwebp
@ -61,14 +55,11 @@ let
python311Packages.rich python311Packages.rich
]; ];
flakePackages = with inputs; [ compose2nix.packages.${system}.default ]; flakePackages = with inputs; [ compose2nix.packages.${system}.default ];
in in {
{
environment.systemPackages = lib.lists.unique (packages ++ flakePackages); environment.systemPackages = lib.lists.unique (packages ++ flakePackages);
# install docker # install docker
virtualisation.docker = { virtualisation.docker = { enable = true; };
enable = true;
};
# remove nano # remove nano
programs.nano.enable = false; programs.nano.enable = false;

View file

@ -1,16 +1,17 @@
{ config, pkgs, ... }: { config, pkgs, ... }: {
{
#TODO: Submit a PR to nixpkgs to add xonsh support to the Starship module #TODO: Submit a PR to nixpkgs to add xonsh support to the Starship module
# After that, we can remove this import and the disabledModules line # After that, we can remove this import and the disabledModules line
disabledModules = [ "programs/starship.nix" ]; disabledModules = [ "programs/starship.nix" ];
imports = [ /bulk/home/cswimr/Projects/nixpkgs/nixos/modules/programs/starship.nix ]; imports =
[ /bulk/home/cswimr/Projects/nixpkgs/nixos/modules/programs/starship.nix ];
# starship - a customizable prompt for any shell # starship - a customizable prompt for any shell
programs.starship = { programs.starship = {
enable = true; enable = true;
# custom settings # custom settings
settings = { settings = {
format = "[](bg:#1e1e2e fg:#a6e3a1)$username$hostname[](fg:#a6e3a1 bg:#89b4fa)$directory[](fg:#89b4fa bg:#cba6f7)$direnv[](fg:#cba6f7 bg:#f9e2af)$git_branch$git_status[](fg:#f9e2af bg:#1e1e2e)$character"; format =
"[](bg:#1e1e2e fg:#a6e3a1)$username$hostname[](fg:#a6e3a1 bg:#89b4fa)$directory[](fg:#89b4fa bg:#cba6f7)$direnv[](fg:#cba6f7 bg:#f9e2af)$git_branch$git_status[](fg:#f9e2af bg:#1e1e2e)$character";
username = { username = {
show_always = true; show_always = true;
format = "[ $user@]($style)"; format = "[ $user@]($style)";
@ -68,98 +69,97 @@
programs.bash.completion.enable = true; programs.bash.completion.enable = true;
users.defaultUserShell = pkgs.xonsh; users.defaultUserShell = pkgs.xonsh;
programs.xonsh = programs.xonsh = let bashcfg = config.programs.bash;
let in {
bashcfg = config.programs.bash; enable = true;
in config = ''
{ $BASH_COMPLETIONS = ('${bashcfg.completion.package}/etc/profile.d/bash_completion.sh')
enable = true; $UPDATE_OS_ENVIRON = True
config = '' $XONTRIB_CLP_ALIAS = 'shutil'
$BASH_COMPLETIONS = ('${bashcfg.completion.package}/etc/profile.d/bash_completion.sh') #xontrib load cd
$UPDATE_OS_ENVIRON = True xontrib load clp
$XONTRIB_CLP_ALIAS = 'shutil' xontrib load direnv
#xontrib load cd xontrib load sh
xontrib load clp '';
xontrib load direnv package = pkgs.xonsh.override {
xontrib load sh extraPackages = ps: [
''; pkgs.python311Packages.rich
package = pkgs.xonsh.override { # (ps.buildPythonPackage rec {
extraPackages = ps: [ # name = "xontrib-cd";
pkgs.python311Packages.rich # version = "0.3.1";
# (ps.buildPythonPackage rec {
# name = "xontrib-cd";
# version = "0.3.1";
# src = pkgs.fetchFromGitHub { # src = pkgs.fetchFromGitHub {
# owner = "eugenesvk"; # owner = "eugenesvk";
# repo = name; # repo = name;
# rev = version; # rev = version;
# sha256 = "XxSxjyCg7PeX1v3e2KKicvAPmNeq+qVqbW4fXTwAiic="; # sha256 = "XxSxjyCg7PeX1v3e2KKicvAPmNeq+qVqbW4fXTwAiic=";
# }; # };
# meta = { # meta = {
# homepage = "https://github.com/eugenesvk/xontrib-cd"; # homepage = "https://github.com/eugenesvk/xontrib-cd";
# description = # description =
# "`cd` to any path without escaping in xonsh shell: `cd ~/[te] st`"; # "`cd` to any path without escaping in xonsh shell: `cd ~/[te] st`";
# license = pkgs.lib.licenses.mit; # license = pkgs.lib.licenses.mit;
# maintainers = [ "cswimr" ]; # maintainers = [ "cswimr" ];
# }; # };
# }) # })
(ps.buildPythonPackage rec { (ps.buildPythonPackage rec {
name = "xontrib-clp"; name = "xontrib-clp";
version = "0.1.7"; version = "0.1.7";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "anki-code"; owner = "anki-code";
repo = name; repo = name;
rev = version; rev = version;
sha256 = "1ewWlwG8KY9s6qydErurvP2x+4DIPTFcjSGP1c5y83M="; sha256 = "1ewWlwG8KY9s6qydErurvP2x+4DIPTFcjSGP1c5y83M=";
}; };
meta = { meta = {
homepage = "https://github.com/anki-code/xontrib-clp"; homepage = "https://github.com/anki-code/xontrib-clp";
description = "Copy output to clipboard. Cross-platform."; description =
license = pkgs.lib.licenses.mit; "Copy output to clipboard. Cross-platform.";
maintainers = [ "cswimr" ]; license = pkgs.lib.licenses.mit;
}; maintainers = [ "cswimr" ];
}) };
(ps.buildPythonPackage rec { })
name = "xonsh-direnv"; (ps.buildPythonPackage rec {
version = "1.6.5"; name = "xonsh-direnv";
version = "1.6.5";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "74th"; owner = "74th";
repo = name; repo = name;
rev = version; rev = version;
sha256 = "huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU="; sha256 = "huBJ7WknVCk+WgZaXHlL+Y1sqsn6TYqMP29/fsUPSyU=";
}; };
meta = { meta = {
homepage = "https://github.com/74th/xonsh-direnv"; homepage = "https://github.com/74th/xonsh-direnv";
description = "xonsh extension for using direnv"; description = "xonsh extension for using direnv";
license = pkgs.lib.licenses.mit; license = pkgs.lib.licenses.mit;
maintainers = [ "cswimr" ]; maintainers = [ "cswimr" ];
}; };
}) })
(ps.buildPythonPackage rec { (ps.buildPythonPackage rec {
name = "xontrib-sh"; name = "xontrib-sh";
version = "0.3.1"; version = "0.3.1";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "anki-code"; owner = "anki-code";
repo = name; repo = name;
rev = version; rev = version;
sha256 = "KL/AxcsvjxqxvjDlf1axitgME3T+iyuW6OFb1foRzN8="; sha256 = "KL/AxcsvjxqxvjDlf1axitgME3T+iyuW6OFb1foRzN8=";
}; };
meta = { meta = {
homepage = "https://github.com/anki-code/xontrib-sh"; homepage = "https://github.com/anki-code/xontrib-sh";
description = "Paste and run commands from bash, zsh, fish, tcsh in xonsh shell."; description =
license = pkgs.lib.licenses.mit; "Paste and run commands from bash, zsh, fish, tcsh in xonsh shell.";
maintainers = [ "cswimr" ]; license = pkgs.lib.licenses.mit;
}; maintainers = [ "cswimr" ];
}) };
]; })
}; ];
}; };
};
} }

View file

@ -1,16 +1,9 @@
{ {
security.sudo.extraRules = [ security.sudo.extraRules = [{
{ users = [ "cswimr" ];
users = [ "cswimr" ]; commands = [{
commands = [ command = "ALL";
{ options = [ "SETENV" "NOPASSWD" ];
command = "ALL"; }];
options = [ }];
"SETENV"
"NOPASSWD"
];
}
];
}
];
} }

View file

@ -5,11 +5,6 @@
# with the contents of your Tailscale auth key. # with the contents of your Tailscale auth key.
# Make sure your permissions are set correctly, e.g. 0600. # Make sure your permissions are set correctly, e.g. 0600.
authKeyFile = "/run/secrets/tailscale"; authKeyFile = "/run/secrets/tailscale";
extraUpFlags = [ extraUpFlags = [ "--ssh" "--accept-routes" "--accept-dns" "--operator=cswimr" ];
"--ssh"
"--accept-routes"
"--accept-dns"
"--operator=cswimr"
];
}; };
} }

View file

@ -3,8 +3,7 @@ let
config = { }; config = { };
overlays = [ ]; overlays = [ ];
}; };
in in pkgs.mkShellNoCC {
pkgs.mkShellNoCC {
packages = with pkgs; [ packages = with pkgs; [
libnotify libnotify
python312 python312