mirror of
https://github.com/nickolaj-jepsen/nixos.git
synced 2026-01-22 08:06: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
|
|
@ -1,4 +1,8 @@
|
|||
{ lib, config, ... }: {
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.fireproof.desktop.enable {
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ in {
|
|||
color: #DAD8CE;
|
||||
border-bottom: 2px solid #CF6A4C;
|
||||
}
|
||||
|
||||
|
||||
#workspaces button.focused {
|
||||
background: #CF6A4C;
|
||||
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 = [
|
||||
./fish/default.nix
|
||||
./claude.nix
|
||||
|
|
@ -12,5 +17,29 @@ _: {
|
|||
./zoxide.nix
|
||||
./systemd-manager-tui.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
|
||||
];
|
||||
}
|
||||
|
|
|
|||
23
modules/programs/docker.nix
Normal file
23
modules/programs/docker.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Enabled when: always
|
||||
{
|
||||
username,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
pkgs.docker
|
||||
pkgs.docker-compose
|
||||
];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
enableOnBoot = lib.mkDefault false;
|
||||
storageDriver = "btrfs";
|
||||
};
|
||||
virtualisation.oci-containers = {
|
||||
backend = "docker";
|
||||
};
|
||||
|
||||
users.extraGroups.docker.members = [username];
|
||||
}
|
||||
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
|
||||
];
|
||||
};
|
||||
}
|
||||
25
modules/programs/pycharm.nix
Normal file
25
modules/programs/pycharm.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Enabled when: desktop & dev
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgsUnstable,
|
||||
...
|
||||
}: let
|
||||
pycharmPkg = pkgsUnstable.jetbrains.pycharm-professional.override {
|
||||
# -Dide.browser.jcef.enabled causes crashes on wayland
|
||||
vmopts = ''
|
||||
-Dide.browser.jcef.enabled=false
|
||||
-Dawt.toolkit.name=WLToolkit
|
||||
-Xmx8G
|
||||
'';
|
||||
};
|
||||
# pycharmWithPlugins = pkgsUnstable.jetbrains.plugins.addPlugins pycharmPkg [
|
||||
# "github-copilot"
|
||||
# ];
|
||||
in {
|
||||
config = lib.mkIf (config.fireproof.desktop.enable && config.fireproof.dev.enable) {
|
||||
environment.systemPackages = [
|
||||
pycharmPkg
|
||||
];
|
||||
};
|
||||
}
|
||||
39
modules/programs/python.nix
Normal file
39
modules/programs/python.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Enabled when: dev
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
pkgsUnstable,
|
||||
...
|
||||
}: let
|
||||
# Sets LD_LIBRARY_PATH for various python-based tools
|
||||
# Some python packages requires shared libraries to build C extensions.
|
||||
mkWrapLDLibraryPath = pkg: let
|
||||
mainProgram = pkg.meta.mainProgram or pkg.pname or (lib.getName pkg);
|
||||
in
|
||||
pkgs.symlinkJoin {
|
||||
name = "${pkg.name}-wrapped";
|
||||
paths = [pkg];
|
||||
nativeBuildInputs = [pkgs.makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/${mainProgram} \
|
||||
--run "export LD_LIBRARY_PATH=\$NIX_LD_LIBRARY_PATH"
|
||||
'';
|
||||
};
|
||||
in {
|
||||
config = lib.mkIf config.fireproof.dev.enable {
|
||||
environment.systemPackages = [
|
||||
(mkWrapLDLibraryPath pkgsUnstable.uv)
|
||||
(mkWrapLDLibraryPath pkgsUnstable.rye)
|
||||
(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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
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