mirror of
https://github.com/nickolaj-jepsen/nixos.git
synced 2026-01-22 16:16:50 +01:00
refactor: move last legacy_modules to modules
This commit is contained in:
parent
d463f4d1af
commit
d50bbb3d12
49 changed files with 580 additions and 459 deletions
|
|
@ -63,26 +63,14 @@ in {
|
||||||
laptop = mkSystem {
|
laptop = mkSystem {
|
||||||
hostname = "laptop";
|
hostname = "laptop";
|
||||||
username = "nickolaj";
|
username = "nickolaj";
|
||||||
modules = [
|
|
||||||
../legacy_modules/graphical.nix
|
|
||||||
../legacy_modules/devenv.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
desktop = mkSystem {
|
desktop = mkSystem {
|
||||||
hostname = "desktop";
|
hostname = "desktop";
|
||||||
username = "nickolaj";
|
username = "nickolaj";
|
||||||
modules = [
|
|
||||||
../legacy_modules/graphical.nix
|
|
||||||
../legacy_modules/devenv.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
work = mkSystem {
|
work = mkSystem {
|
||||||
hostname = "work";
|
hostname = "work";
|
||||||
username = "nickolaj";
|
username = "nickolaj";
|
||||||
modules = [
|
|
||||||
../legacy_modules/graphical.nix
|
|
||||||
../legacy_modules/devenv.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
homelab = mkSystem {
|
homelab = mkSystem {
|
||||||
hostname = "homelab";
|
hostname = "homelab";
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
{
|
{
|
||||||
fireproof.desktop.enable = true;
|
fireproof.desktop.enable = true;
|
||||||
}
|
fireproof.work.enable = true;
|
||||||
|
fireproof.dev.enable = true;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
fireproof.dev.enable = true;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
# Use grub as bootloader as it works better with mdadm
|
# Use grub as bootloader as it works better with mdadm
|
||||||
loader.grub.enable = true;
|
loader.grub.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
fireproof.desktop.enable = true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
|
fireproof.desktop.enable = true;
|
||||||
|
fireproof.work.enable = true;
|
||||||
|
fireproof.dev.enable = true;
|
||||||
# Enable OpenGL
|
# Enable OpenGL
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
{
|
{
|
||||||
fireproof.desktop.enable = true;
|
fireproof.desktop.enable = true;
|
||||||
}
|
fireproof.work.enable = true;
|
||||||
|
fireproof.dev.enable = true;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
fireproof.home-manager.programs.chromium = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgsUnstable.chromium;
|
|
||||||
extensions = [
|
|
||||||
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin
|
|
||||||
"nngceckbapebfimnlniiiahkandclblb" # Bitwarden
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.ferdium
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
{
|
|
||||||
pkgsUnstable,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
nur = inputs.nur.legacyPackages.${pkgs.system};
|
|
||||||
extensions = nur.repos.rycee.firefox-addons;
|
|
||||||
in {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgsUnstable.firefox;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mime.defaultApplications = {
|
|
||||||
"text/html" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/http" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/https" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/about" = "firefox.desktop";
|
|
||||||
"x-scheme-handler/unknown" = "firefox.desktop";
|
|
||||||
};
|
|
||||||
|
|
||||||
fireproof.home-manager = {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgsUnstable.firefox;
|
|
||||||
profiles.default = {
|
|
||||||
extensions.packages = with extensions; [
|
|
||||||
# Privacy
|
|
||||||
ublock-origin
|
|
||||||
clearurls
|
|
||||||
libredirect
|
|
||||||
smartproxy
|
|
||||||
|
|
||||||
# Security
|
|
||||||
bitwarden
|
|
||||||
|
|
||||||
# Media
|
|
||||||
dearrow
|
|
||||||
sponsorblock
|
|
||||||
|
|
||||||
# Search
|
|
||||||
kagi-search
|
|
||||||
|
|
||||||
# Productivity
|
|
||||||
new-tab-override
|
|
||||||
|
|
||||||
# Social
|
|
||||||
reddit-enhancement-suite
|
|
||||||
|
|
||||||
# Development
|
|
||||||
react-devtools
|
|
||||||
refined-github
|
|
||||||
];
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
"browser.startup.homepage" = "https://flame.nickolaj.com";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
ghostty
|
|
||||||
];
|
|
||||||
fireproof.home-manager = {
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = config.programs.fish.enable;
|
|
||||||
settings = {
|
|
||||||
window-decoration = false;
|
|
||||||
theme = "fireproof";
|
|
||||||
font-size = 11;
|
|
||||||
font-family = "Hack Nerd Font";
|
|
||||||
window-inherit-font-size = false;
|
|
||||||
};
|
|
||||||
themes = {
|
|
||||||
fireproof = {
|
|
||||||
background = "1C1B1A";
|
|
||||||
cursor-color = "DAD8CE";
|
|
||||||
foreground = "DAD8CE";
|
|
||||||
palette = [
|
|
||||||
"0=#100F0F"
|
|
||||||
"1=#AF3029"
|
|
||||||
"2=#66800B"
|
|
||||||
"3=#AD8301"
|
|
||||||
"4=#205EA6"
|
|
||||||
"5=#A02F6F"
|
|
||||||
"6=#24837B"
|
|
||||||
"7=#DAD8CE"
|
|
||||||
"8=#878580"
|
|
||||||
"9=#D14D41"
|
|
||||||
"10=#879A39"
|
|
||||||
"11=#D0A215"
|
|
||||||
"12=#4385BE"
|
|
||||||
"13=#CE5D97"
|
|
||||||
"14=#3AA99F"
|
|
||||||
"15=#F2F0E5"
|
|
||||||
];
|
|
||||||
selection-background = "403E3C";
|
|
||||||
selection-foreground = "DAD8CE";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
fireproof.base.defaults.terminal = "ghostty";
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.obsidian
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.slack
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
username,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
spotify
|
|
||||||
];
|
|
||||||
|
|
||||||
age.secrets.spotify-player = {
|
|
||||||
rekeyFile = ../../secrets/spotify-player.age;
|
|
||||||
path = "/home/${username}/.cache/spotify-player/credentials.json";
|
|
||||||
mode = "0600";
|
|
||||||
owner = username;
|
|
||||||
};
|
|
||||||
|
|
||||||
fireproof.home-manager = {
|
|
||||||
programs.spotify-player = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.sublime-merge
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,128 +0,0 @@
|
||||||
{
|
|
||||||
pkgsUnstable,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
vscodePackage = pkgsUnstable.vscode;
|
|
||||||
|
|
||||||
vscode-extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system};
|
|
||||||
vscodePkgs = vscode-extensions.vscode-marketplace // vscode-extensions.vscode-marketplace-release; # Prefer release over pre-release
|
|
||||||
|
|
||||||
mkFormatter = formatter: languages: {
|
|
||||||
"[${lib.concatStringsSep "][" languages}]" = {
|
|
||||||
"editor.defaultFormatter" = formatter;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# I can't get nix-vscode-extensions to respect allowUnfree, so this is a workaround
|
|
||||||
allowUnfree = ext: ext.override {meta.license = [];};
|
|
||||||
in {
|
|
||||||
fireproof.home-manager = {
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
package = vscodePackage;
|
|
||||||
profiles.default = {
|
|
||||||
enableUpdateCheck = true;
|
|
||||||
enableExtensionUpdateCheck = true;
|
|
||||||
keybindings = [
|
|
||||||
{
|
|
||||||
"key" = "ctrl+shift+p";
|
|
||||||
"command" = "editor.action.formatDocument";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
userSettings = lib.mkMerge [
|
|
||||||
{
|
|
||||||
# General
|
|
||||||
"extensions.ignoreRecommendations" = true;
|
|
||||||
"telemetry.telemetryLevel" = "off";
|
|
||||||
|
|
||||||
# Editor
|
|
||||||
"editor.linkedEditing" = true;
|
|
||||||
"files.exclude" = {
|
|
||||||
"**/*.egg-info" = true;
|
|
||||||
"**/__pycache__" = true;
|
|
||||||
};
|
|
||||||
"workbench.editor.wrapTabs" = true;
|
|
||||||
|
|
||||||
# Files
|
|
||||||
"files.autoSave" = "afterDelay";
|
|
||||||
|
|
||||||
# Remote
|
|
||||||
"remote.SSH.useLocalServer" = false;
|
|
||||||
"remote.SSH.remotePlatform" = lib.mapAttrs (_name: _value: "linux") config.fireproof.home-manager.programs.ssh.matchBlocks;
|
|
||||||
|
|
||||||
# AI
|
|
||||||
"github.copilot.enable" = {
|
|
||||||
"*" = true;
|
|
||||||
"plaintext" = true;
|
|
||||||
"markdown" = true;
|
|
||||||
"scminput" = true;
|
|
||||||
};
|
|
||||||
"chat.agent.enabled" = true;
|
|
||||||
"github.copilot.chat.agent.thinkingTool" = true;
|
|
||||||
"github.copilot.chat.codesearch.enabled" = true;
|
|
||||||
"github.copilot.nextEditSuggestions.enabled" = true;
|
|
||||||
"githubPullRequests.codingAgent.uiIntegration" = true;
|
|
||||||
"githubPullRequests.pullBranch" = "always";
|
|
||||||
|
|
||||||
# Theme
|
|
||||||
"workbench.colorTheme" = "Darcula Theme from IntelliJ";
|
|
||||||
"window.titleBarStyle" = "custom";
|
|
||||||
"editor.fontFamily" = "'Hack Nerd Font', 'Hack', 'monospace', monospace";
|
|
||||||
|
|
||||||
# Keybindings
|
|
||||||
"workbench.commandPalette.experimental.suggestCommands" = true; # Emulates IntelliJ's "Search Everywhere"
|
|
||||||
|
|
||||||
# nix-ide
|
|
||||||
"nix.enableLanguageServer" = true;
|
|
||||||
"nix.serverPath" = lib.getExe pkgs.nil;
|
|
||||||
"nix.serverSettings" = {
|
|
||||||
nil.formatting.command = ["nix" "fmt" "--" "--"];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Other extensions
|
|
||||||
"biome.suggestInstallingGlobally" = false;
|
|
||||||
}
|
|
||||||
(mkFormatter "esbenp.prettier-vscode" ["json" "jsonc" "markdown" "css" "scss" "typescript" "typescriptreact" "html" "yaml"])
|
|
||||||
(mkFormatter "charliermarsh.ruff" ["python"])
|
|
||||||
];
|
|
||||||
extensions = with vscodePkgs; [
|
|
||||||
# Remote
|
|
||||||
(allowUnfree ms-vscode-remote.remote-ssh)
|
|
||||||
|
|
||||||
# AI
|
|
||||||
(allowUnfree github.copilot)
|
|
||||||
(allowUnfree github.copilot-chat)
|
|
||||||
|
|
||||||
# Git(hub)
|
|
||||||
github.vscode-pull-request-github
|
|
||||||
|
|
||||||
# Python
|
|
||||||
ms-pyright.pyright
|
|
||||||
ms-python.python
|
|
||||||
charliermarsh.ruff
|
|
||||||
|
|
||||||
# JavaScript
|
|
||||||
dbaeumer.vscode-eslint
|
|
||||||
esbenp.prettier-vscode
|
|
||||||
|
|
||||||
# Nix
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
|
|
||||||
# Other languages
|
|
||||||
nefrob.vscode-just-syntax
|
|
||||||
redhat.vscode-yaml
|
|
||||||
|
|
||||||
# Theme
|
|
||||||
trinm1709.dracula-theme-from-intellij
|
|
||||||
|
|
||||||
# Keybindings
|
|
||||||
k--kato.intellij-idea-keybindings
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
fireproof.home-manager.programs.zed-editor = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgsUnstable.zed-editor;
|
|
||||||
extensions = [
|
|
||||||
"basedpyright"
|
|
||||||
"biome"
|
|
||||||
"css-modules-kit"
|
|
||||||
"dockerfile"
|
|
||||||
"env"
|
|
||||||
"fish"
|
|
||||||
"jetbrains-themes"
|
|
||||||
"just-ls"
|
|
||||||
"mcp-server-linear"
|
|
||||||
"nix"
|
|
||||||
];
|
|
||||||
userSettings = {
|
|
||||||
base_keymap = "JetBrains";
|
|
||||||
theme = {
|
|
||||||
mode = "dark";
|
|
||||||
light = "JetBrains Light";
|
|
||||||
dark = "JetBrains Dark";
|
|
||||||
};
|
|
||||||
ui_font_family = "Hack Nerd Font";
|
|
||||||
buffer_font_family = "Hack Nerd Font";
|
|
||||||
buffer_font_size = 13;
|
|
||||||
buffer_line_height = "standard";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.clickhouse
|
|
||||||
pkgsUnstable.envsubst
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
pkgsUnstable,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.nodejs
|
|
||||||
pkgsUnstable.pnpm
|
|
||||||
pkgs.turbo-unwrapped
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.just
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
username,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.kubectl
|
|
||||||
];
|
|
||||||
|
|
||||||
age.secrets.k8s-ao-dev = {
|
|
||||||
rekeyFile = ../../secrets/k8s/ao-dev.age;
|
|
||||||
path = "/home/${username}/.kube/config.ao-dev";
|
|
||||||
mode = "0600";
|
|
||||||
owner = username;
|
|
||||||
};
|
|
||||||
|
|
||||||
age.secrets.k8s-ao-prod = {
|
|
||||||
rekeyFile = ../../secrets/k8s/ao-prod.age;
|
|
||||||
path = "/home/${username}/.kube/config.ao-prod";
|
|
||||||
mode = "0600";
|
|
||||||
owner = username;
|
|
||||||
};
|
|
||||||
|
|
||||||
fireproof.home-manager = {
|
|
||||||
home.sessionVariables = {
|
|
||||||
KUBECONFIG = "${config.age.secrets.k8s-ao-dev.path}:${config.age.secrets.k8s-ao-prod.path}:$HOME/.kube/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.natscli
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
fireproof.home-manager.programs.fish.shellInit = ''
|
|
||||||
set -xg PLAYWRIGHT_BROWSERS_PATH ${pkgsUnstable.playwright-driver.browsers}
|
|
||||||
set -xg PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS true
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.postgresql
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{pkgsUnstable, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgsUnstable.tilt
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./apps/pycharm.nix
|
|
||||||
./apps/vscode.nix
|
|
||||||
./apps/sublime-merge.nix
|
|
||||||
./dev/python.nix
|
|
||||||
./dev/javascript.nix
|
|
||||||
./dev/k8s.nix
|
|
||||||
./dev/docker.nix
|
|
||||||
./dev/tilt.nix
|
|
||||||
./dev/postgres.nix
|
|
||||||
./dev/clickhouse.nix
|
|
||||||
./dev/playwright.nix
|
|
||||||
./dev/nats.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./apps/spotify.nix
|
|
||||||
./apps/firefox.nix
|
|
||||||
./apps/chromium.nix
|
|
||||||
./apps/zed.nix
|
|
||||||
./apps/ghostty.nix
|
|
||||||
./apps/slack.nix
|
|
||||||
./apps/obsidian.nix
|
|
||||||
./apps/ferdium.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{ lib, config, ... }: {
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
config = lib.mkIf config.fireproof.desktop.enable {
|
config = lib.mkIf config.fireproof.desktop.enable {
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ in {
|
||||||
color: #DAD8CE;
|
color: #DAD8CE;
|
||||||
border-bottom: 2px solid #CF6A4C;
|
border-bottom: 2px solid #CF6A4C;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.focused {
|
||||||
background: #CF6A4C;
|
background: #CF6A4C;
|
||||||
color: #1C1B1A;
|
color: #1C1B1A;
|
||||||
|
|
|
||||||
18
modules/programs/chromium.nix
Normal file
18
modules/programs/chromium.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Enabled when: desktop
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.desktop.enable {
|
||||||
|
fireproof.home-manager.programs.chromium = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgsUnstable.chromium;
|
||||||
|
extensions = [
|
||||||
|
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin
|
||||||
|
"nngceckbapebfimnlniiiahkandclblb" # Bitwarden
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
14
modules/programs/clickhouse.nix
Normal file
14
modules/programs/clickhouse.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.clickhouse
|
||||||
|
pkgsUnstable.envsubst
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
_: {
|
{lib, ...}: {
|
||||||
|
options.fireproof = {
|
||||||
|
work.enable = lib.mkEnableOption "Enable work-related applications and tools";
|
||||||
|
dev.enable = lib.mkEnableOption "Enable development tools and applications";
|
||||||
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./fish/default.nix
|
./fish/default.nix
|
||||||
./claude.nix
|
./claude.nix
|
||||||
|
|
@ -12,5 +17,29 @@ _: {
|
||||||
./zoxide.nix
|
./zoxide.nix
|
||||||
./systemd-manager-tui.nix
|
./systemd-manager-tui.nix
|
||||||
./llm.nix
|
./llm.nix
|
||||||
|
|
||||||
|
# Apps (migrated from legacy_modules/apps)
|
||||||
|
./chromium.nix
|
||||||
|
./ferdium.nix
|
||||||
|
./firefox.nix
|
||||||
|
./ghostty.nix
|
||||||
|
./obsidian.nix
|
||||||
|
./pycharm.nix
|
||||||
|
./slack.nix
|
||||||
|
./spotify.nix
|
||||||
|
./sublime-merge.nix
|
||||||
|
./vscode.nix
|
||||||
|
./zed.nix
|
||||||
|
|
||||||
|
# Dev tools (migrated from legacy_modules/dev)
|
||||||
|
./clickhouse.nix
|
||||||
|
./docker.nix
|
||||||
|
./javascript.nix
|
||||||
|
./k8s.nix
|
||||||
|
./nats.nix
|
||||||
|
./playwright.nix
|
||||||
|
./postgres.nix
|
||||||
|
./python.nix
|
||||||
|
./tilt.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
# Enabled when: always
|
||||||
{
|
{
|
||||||
username,
|
username,
|
||||||
pkgs,
|
pkgs,
|
||||||
13
modules/programs/ferdium.nix
Normal file
13
modules/programs/ferdium.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: desktop & work
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.work.enable) {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.ferdium
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
67
modules/programs/firefox.nix
Normal file
67
modules/programs/firefox.nix
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
# Enabled when: desktop
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
nur = inputs.nur.legacyPackages.${pkgs.system};
|
||||||
|
extensions = nur.repos.rycee.firefox-addons;
|
||||||
|
in {
|
||||||
|
config = lib.mkIf config.fireproof.desktop.enable {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgsUnstable.firefox;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.mime.defaultApplications = {
|
||||||
|
"text/html" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/http" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/https" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/about" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
fireproof.home-manager = {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgsUnstable.firefox;
|
||||||
|
profiles.default = {
|
||||||
|
extensions.packages = with extensions; [
|
||||||
|
# Privacy
|
||||||
|
ublock-origin
|
||||||
|
clearurls
|
||||||
|
libredirect
|
||||||
|
smartproxy
|
||||||
|
|
||||||
|
# Security
|
||||||
|
bitwarden
|
||||||
|
|
||||||
|
# Media
|
||||||
|
dearrow
|
||||||
|
sponsorblock
|
||||||
|
|
||||||
|
# Search
|
||||||
|
kagi-search
|
||||||
|
|
||||||
|
# Productivity
|
||||||
|
new-tab-override
|
||||||
|
|
||||||
|
# Social
|
||||||
|
reddit-enhancement-suite
|
||||||
|
|
||||||
|
# Development
|
||||||
|
react-devtools
|
||||||
|
refined-github
|
||||||
|
];
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
"browser.startup.homepage" = "https://flame.nickolaj.com";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
54
modules/programs/ghostty.nix
Normal file
54
modules/programs/ghostty.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
# Enabled when: desktop
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.desktop.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ghostty
|
||||||
|
];
|
||||||
|
fireproof.home-manager = {
|
||||||
|
programs.ghostty = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = config.programs.fish.enable;
|
||||||
|
settings = {
|
||||||
|
window-decoration = false;
|
||||||
|
theme = "fireproof";
|
||||||
|
font-size = 11;
|
||||||
|
font-family = "Hack Nerd Font";
|
||||||
|
window-inherit-font-size = false;
|
||||||
|
};
|
||||||
|
themes = {
|
||||||
|
fireproof = {
|
||||||
|
background = "1C1B1A";
|
||||||
|
cursor-color = "DAD8CE";
|
||||||
|
foreground = "DAD8CE";
|
||||||
|
palette = [
|
||||||
|
"0=#100F0F"
|
||||||
|
"1=#AF3029"
|
||||||
|
"2=#66800B"
|
||||||
|
"3=#AD8301"
|
||||||
|
"4=#205EA6"
|
||||||
|
"5=#A02F6F"
|
||||||
|
"6=#24837B"
|
||||||
|
"7=#DAD8CE"
|
||||||
|
"8=#878580"
|
||||||
|
"9=#D14D41"
|
||||||
|
"10=#879A39"
|
||||||
|
"11=#D0A215"
|
||||||
|
"12=#4385BE"
|
||||||
|
"13=#CE5D97"
|
||||||
|
"14=#3AA99F"
|
||||||
|
"15=#F2F0E5"
|
||||||
|
];
|
||||||
|
selection-background = "403E3C";
|
||||||
|
selection-foreground = "DAD8CE";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fireproof.base.defaults.terminal = "ghostty";
|
||||||
|
};
|
||||||
|
}
|
||||||
16
modules/programs/javascript.nix
Normal file
16
modules/programs/javascript.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.nodejs
|
||||||
|
pkgsUnstable.pnpm
|
||||||
|
pkgs.turbo-unwrapped
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
34
modules/programs/k8s.nix
Normal file
34
modules/programs/k8s.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
username,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.kubectl
|
||||||
|
];
|
||||||
|
|
||||||
|
age.secrets.k8s-ao-dev = {
|
||||||
|
rekeyFile = ../../secrets/k8s/ao-dev.age;
|
||||||
|
path = "/home/${username}/.kube/config.ao-dev";
|
||||||
|
mode = "0600";
|
||||||
|
owner = username;
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.k8s-ao-prod = {
|
||||||
|
rekeyFile = ../../secrets/k8s/ao-prod.age;
|
||||||
|
path = "/home/${username}/.kube/config.ao-prod";
|
||||||
|
mode = "0600";
|
||||||
|
owner = username;
|
||||||
|
};
|
||||||
|
|
||||||
|
fireproof.home-manager = {
|
||||||
|
home.sessionVariables = {
|
||||||
|
KUBECONFIG = "${config.age.secrets.k8s-ao-dev.path}:${config.age.secrets.k8s-ao-prod.path}:$HOME/.kube/config";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
modules/programs/nats.nix
Normal file
13
modules/programs/nats.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.natscli
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
13
modules/programs/obsidian.nix
Normal file
13
modules/programs/obsidian.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: desktop
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.desktop.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.obsidian
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
14
modules/programs/playwright.nix
Normal file
14
modules/programs/playwright.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
fireproof.home-manager.programs.fish.shellInit = ''
|
||||||
|
set -xg PLAYWRIGHT_BROWSERS_PATH ${pkgsUnstable.playwright-driver.browsers}
|
||||||
|
set -xg PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS true
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
13
modules/programs/postgres.nix
Normal file
13
modules/programs/postgres.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.postgresql
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
{pkgsUnstable, ...}: let
|
# Enabled when: desktop & dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
pycharmPkg = pkgsUnstable.jetbrains.pycharm-professional.override {
|
pycharmPkg = pkgsUnstable.jetbrains.pycharm-professional.override {
|
||||||
# -Dide.browser.jcef.enabled causes crashes on wayland
|
# -Dide.browser.jcef.enabled causes crashes on wayland
|
||||||
vmopts = ''
|
vmopts = ''
|
||||||
|
|
@ -11,7 +17,9 @@
|
||||||
# "github-copilot"
|
# "github-copilot"
|
||||||
# ];
|
# ];
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = [
|
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
|
||||||
pycharmPkg
|
environment.systemPackages = [
|
||||||
];
|
pycharmPkg
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
|
# Enabled when: dev
|
||||||
{
|
{
|
||||||
pkgs,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
pkgsUnstable,
|
pkgsUnstable,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
|
@ -19,17 +21,19 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = [
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
(mkWrapLDLibraryPath pkgsUnstable.uv)
|
environment.systemPackages = [
|
||||||
(mkWrapLDLibraryPath pkgsUnstable.rye)
|
(mkWrapLDLibraryPath pkgsUnstable.uv)
|
||||||
(mkWrapLDLibraryPath pkgs.python3)
|
(mkWrapLDLibraryPath pkgsUnstable.rye)
|
||||||
(mkWrapLDLibraryPath pkgsUnstable.prek)
|
(mkWrapLDLibraryPath pkgs.python3)
|
||||||
];
|
(mkWrapLDLibraryPath pkgsUnstable.prek)
|
||||||
|
|
||||||
# uv tool adds executable to $HOME/.local/bin, so add it to PATH
|
|
||||||
fireproof.home-manager = {
|
|
||||||
home.sessionPath = [
|
|
||||||
"$HOME/.local/bin"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# uv tool adds executable to $HOME/.local/bin, so add it to PATH
|
||||||
|
fireproof.home-manager = {
|
||||||
|
home.sessionPath = [
|
||||||
|
"$HOME/.local/bin"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
13
modules/programs/slack.nix
Normal file
13
modules/programs/slack.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: desktop & work
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.work.enable) {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.slack
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
27
modules/programs/spotify.nix
Normal file
27
modules/programs/spotify.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Enabled when: desktop
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
username,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.desktop.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
spotify
|
||||||
|
];
|
||||||
|
|
||||||
|
age.secrets.spotify-player = {
|
||||||
|
rekeyFile = ../../secrets/spotify-player.age;
|
||||||
|
path = "/home/${username}/.cache/spotify-player/credentials.json";
|
||||||
|
mode = "0600";
|
||||||
|
owner = username;
|
||||||
|
};
|
||||||
|
|
||||||
|
fireproof.home-manager = {
|
||||||
|
programs.spotify-player = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
modules/programs/sublime-merge.nix
Normal file
13
modules/programs/sublime-merge.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: desktop & dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.sublime-merge
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
13
modules/programs/tilt.nix
Normal file
13
modules/programs/tilt.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Enabled when: dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf config.fireproof.dev.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgsUnstable.tilt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
131
modules/programs/vscode.nix
Normal file
131
modules/programs/vscode.nix
Normal file
|
|
@ -0,0 +1,131 @@
|
||||||
|
# Enabled when: desktop & dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
vscodePackage = pkgsUnstable.vscode;
|
||||||
|
|
||||||
|
vscode-extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system};
|
||||||
|
vscodePkgs = vscode-extensions.vscode-marketplace // vscode-extensions.vscode-marketplace-release; # Prefer release over pre-release
|
||||||
|
|
||||||
|
mkFormatter = formatter: languages: {
|
||||||
|
"[${lib.concatStringsSep "][" languages}]" = {
|
||||||
|
"editor.defaultFormatter" = formatter;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# I can't get nix-vscode-extensions to respect allowUnfree, so this is a workaround
|
||||||
|
allowUnfree = ext: ext.override {meta.license = [];};
|
||||||
|
in {
|
||||||
|
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
|
||||||
|
fireproof.home-manager = {
|
||||||
|
programs.vscode = {
|
||||||
|
enable = true;
|
||||||
|
package = vscodePackage;
|
||||||
|
profiles.default = {
|
||||||
|
enableUpdateCheck = true;
|
||||||
|
enableExtensionUpdateCheck = true;
|
||||||
|
keybindings = [
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+p";
|
||||||
|
"command" = "editor.action.formatDocument";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
userSettings = lib.mkMerge [
|
||||||
|
{
|
||||||
|
# General
|
||||||
|
"extensions.ignoreRecommendations" = true;
|
||||||
|
"telemetry.telemetryLevel" = "off";
|
||||||
|
|
||||||
|
# Editor
|
||||||
|
"editor.linkedEditing" = true;
|
||||||
|
"files.exclude" = {
|
||||||
|
"**/*.egg-info" = true;
|
||||||
|
"**/__pycache__" = true;
|
||||||
|
};
|
||||||
|
"workbench.editor.wrapTabs" = true;
|
||||||
|
|
||||||
|
# Files
|
||||||
|
"files.autoSave" = "afterDelay";
|
||||||
|
|
||||||
|
# Remote
|
||||||
|
"remote.SSH.useLocalServer" = false;
|
||||||
|
"remote.SSH.remotePlatform" = lib.mapAttrs (_name: _value: "linux") config.fireproof.home-manager.programs.ssh.matchBlocks;
|
||||||
|
|
||||||
|
# AI
|
||||||
|
"github.copilot.enable" = {
|
||||||
|
"*" = true;
|
||||||
|
"plaintext" = true;
|
||||||
|
"markdown" = true;
|
||||||
|
"scminput" = true;
|
||||||
|
};
|
||||||
|
"chat.agent.enabled" = true;
|
||||||
|
"github.copilot.chat.agent.thinkingTool" = true;
|
||||||
|
"github.copilot.chat.codesearch.enabled" = true;
|
||||||
|
"github.copilot.nextEditSuggestions.enabled" = true;
|
||||||
|
"githubPullRequests.codingAgent.uiIntegration" = true;
|
||||||
|
"githubPullRequests.pullBranch" = "always";
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
"workbench.colorTheme" = "Darcula Theme from IntelliJ";
|
||||||
|
"window.titleBarStyle" = "custom";
|
||||||
|
"editor.fontFamily" = "'Hack Nerd Font', 'Hack', 'monospace', monospace";
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
"workbench.commandPalette.experimental.suggestCommands" = true; # Emulates IntelliJ's "Search Everywhere"
|
||||||
|
|
||||||
|
# nix-ide
|
||||||
|
"nix.enableLanguageServer" = true;
|
||||||
|
"nix.serverPath" = lib.getExe pkgs.nil;
|
||||||
|
"nix.serverSettings" = {
|
||||||
|
nil.formatting.command = ["nix" "fmt" "--" "--"];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Other extensions
|
||||||
|
"biome.suggestInstallingGlobally" = false;
|
||||||
|
}
|
||||||
|
(mkFormatter "esbenp.prettier-vscode" ["json" "jsonc" "markdown" "css" "scss" "typescript" "typescriptreact" "html" "yaml"])
|
||||||
|
(mkFormatter "charliermarsh.ruff" ["python"])
|
||||||
|
];
|
||||||
|
extensions = with vscodePkgs; [
|
||||||
|
# Remote
|
||||||
|
(allowUnfree ms-vscode-remote.remote-ssh)
|
||||||
|
|
||||||
|
# AI
|
||||||
|
(allowUnfree github.copilot)
|
||||||
|
(allowUnfree github.copilot-chat)
|
||||||
|
|
||||||
|
# Git(hub)
|
||||||
|
github.vscode-pull-request-github
|
||||||
|
|
||||||
|
# Python
|
||||||
|
ms-pyright.pyright
|
||||||
|
ms-python.python
|
||||||
|
charliermarsh.ruff
|
||||||
|
|
||||||
|
# JavaScript
|
||||||
|
dbaeumer.vscode-eslint
|
||||||
|
esbenp.prettier-vscode
|
||||||
|
|
||||||
|
# Nix
|
||||||
|
jnoortheen.nix-ide
|
||||||
|
|
||||||
|
# Other languages
|
||||||
|
nefrob.vscode-just-syntax
|
||||||
|
redhat.vscode-yaml
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
trinm1709.dracula-theme-from-intellij
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
k--kato.intellij-idea-keybindings
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
38
modules/programs/zed.nix
Normal file
38
modules/programs/zed.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Enabled when: desktop & dev
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgsUnstable,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
|
||||||
|
fireproof.home-manager.programs.zed-editor = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgsUnstable.zed-editor;
|
||||||
|
extensions = [
|
||||||
|
"basedpyright"
|
||||||
|
"biome"
|
||||||
|
"css-modules-kit"
|
||||||
|
"dockerfile"
|
||||||
|
"env"
|
||||||
|
"fish"
|
||||||
|
"jetbrains-themes"
|
||||||
|
"just-ls"
|
||||||
|
"mcp-server-linear"
|
||||||
|
"nix"
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
base_keymap = "JetBrains";
|
||||||
|
theme = {
|
||||||
|
mode = "dark";
|
||||||
|
light = "JetBrains Light";
|
||||||
|
dark = "JetBrains Dark";
|
||||||
|
};
|
||||||
|
ui_font_family = "Hack Nerd Font";
|
||||||
|
buffer_font_family = "Hack Nerd Font";
|
||||||
|
buffer_font_size = 13;
|
||||||
|
buffer_line_height = "standard";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue