push
This commit is contained in:
24
modules/audio.nix
Normal file
24
modules/audio.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services = {
|
||||
pulseaudio.enable = false;
|
||||
|
||||
pipewire = {
|
||||
enable = true;
|
||||
|
||||
wireplumber.enable = true;
|
||||
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
|
||||
pulse.enable = true;
|
||||
|
||||
lowLatency.enable = false;
|
||||
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
23
modules/boot.nix
Normal file
23
modules/boot.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
boot = {
|
||||
kernelModules = if (device == "desktop") then ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "uinput"] else [];
|
||||
kernelParams = if (device == "desktop") then ["nvidia-drm.modeset=1" "nvidia_drm.fbdev=1"] else [];
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
|
||||
initrd.checkJournalingFS = false;
|
||||
|
||||
loader = {
|
||||
grub.splashImage = null;
|
||||
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 25;
|
||||
};
|
||||
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
62
modules/cosmic.nix
Normal file
62
modules/cosmic.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
greetd.enable = true;
|
||||
|
||||
system76-scheduler.enable = true;
|
||||
|
||||
displayManager = {
|
||||
cosmic-greeter.enable = true;
|
||||
|
||||
autoLogin = {
|
||||
enable = (device == "desktop");
|
||||
user = "bug";
|
||||
};
|
||||
};
|
||||
|
||||
desktopManager.cosmic.enable = true;
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||
};
|
||||
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
|
||||
config.common.default = ["gtk"];
|
||||
|
||||
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic];
|
||||
};
|
||||
|
||||
mime = {
|
||||
enable = true;
|
||||
|
||||
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";
|
||||
"application/pdf" = "firefox.desktop";
|
||||
|
||||
"inode/directory" = "com.system76.CosmicFiles.desktop";
|
||||
|
||||
"text/plain" = "com.system76.CosmicEdit.desktop";
|
||||
"text/markdown" = "com.system76.CosmicEdit.desktop";
|
||||
|
||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/gzip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-xz" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-zip-compressed" = "org.gnome.FileRoller.desktop";
|
||||
|
||||
"application/x-ms-dos-executable" = "wine.desktop";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
88
modules/graphics.nix
Normal file
88
modules/graphics.nix
Normal file
@@ -0,0 +1,88 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
|
||||
videoDrivers = if (device == "desktop") then ["nvidia"] else ["amdgpu"];
|
||||
excludePackages = [pkgs.xterm];
|
||||
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
libva-vdpau-driver
|
||||
libvdpau
|
||||
libvdpau-va-gl
|
||||
vdpauinfo
|
||||
libva
|
||||
libva-utils
|
||||
libglvnd
|
||||
mesa
|
||||
] ++ (if (device == "desktop") then [
|
||||
nvidia-vaapi-driver
|
||||
] else [
|
||||
|
||||
]);
|
||||
};
|
||||
|
||||
nvidia = if (device == "desktop") then {
|
||||
modesetting.enable = true;
|
||||
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
open = false;
|
||||
|
||||
nvidiaSettings = true;
|
||||
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
|
||||
nvidiaPersistenced = true;
|
||||
} else {};
|
||||
|
||||
enableRedistributableFirmware = true;
|
||||
};
|
||||
|
||||
|
||||
environment = {
|
||||
variables = {
|
||||
|
||||
} // (if (device == "desktop") then {
|
||||
WGPU_BACKEND = "gl";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
EGL_PLATFORM = "wayland";
|
||||
} else {
|
||||
|
||||
});
|
||||
|
||||
sessionVariables = {
|
||||
WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
||||
} // (if (device == "desktop") then {
|
||||
WGPU_BACKEND = "gl";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
EGL_PLATFORM = "wayland";
|
||||
} else {
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "ignore";
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
}
|
||||
4
modules/home-manager.nix
Normal file
4
modules/home-manager.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
}
|
||||
21
modules/locale.nix
Normal file
21
modules/locale.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
}
|
||||
45
modules/mailserver.nix
Normal file
45
modules/mailserver.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(builtins.fetchTarball {
|
||||
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/master.tar.gz";
|
||||
|
||||
sha256 = "0xlhl8zhcz5c6hvmpkfw9ay2lfnk6nhax8pphvbv3vzxf1p9dhw9";
|
||||
})
|
||||
];
|
||||
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults.email = "security@bug.tools";
|
||||
|
||||
certs."mail.bug.tools" = {
|
||||
listenHTTP = "1360";
|
||||
};
|
||||
};
|
||||
|
||||
mailserver = {
|
||||
enable = true;
|
||||
|
||||
stateVersion = 3;
|
||||
|
||||
fqdn = "mail.bug.tools";
|
||||
domains = [ "bug.tools" ];
|
||||
|
||||
x509.useACMEHost = "mail.bug.tools";
|
||||
|
||||
loginAccounts = {
|
||||
"bug@bug.tools" = {
|
||||
hashedPasswordFile = "/home/bug/mailserver/bug.passwd";
|
||||
aliases = [
|
||||
"admin@bug.tools"
|
||||
"google@bug.tools"
|
||||
];
|
||||
};
|
||||
|
||||
"pare@bug.tools" = {
|
||||
hashedPasswordFile = "/home/bug/mailserver/pare.passwd";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
37
modules/mpd.nix
Normal file
37
modules/mpd.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
mpd = {
|
||||
enable = (device == "laptop");
|
||||
|
||||
settings = {
|
||||
music_directory = "/run/media/bug/Music/";
|
||||
|
||||
decoder = [
|
||||
{
|
||||
plugin = "ffmpeg";
|
||||
enabled = "yes";
|
||||
}
|
||||
{
|
||||
plugin = "opus";
|
||||
enabled = "no";
|
||||
}
|
||||
];
|
||||
|
||||
audio_output = [{
|
||||
type = "pipewire";
|
||||
name = "PipeWire Sound Server";
|
||||
}];
|
||||
};
|
||||
|
||||
user = "bug";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
mpd.environment = {
|
||||
XDG_RUNTIME_DIR = "/run/user/1000";
|
||||
};
|
||||
};
|
||||
}
|
||||
25
modules/network.nix
Normal file
25
modules/network.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
networking = {
|
||||
hostName = if (device == "server") then "box" else "nix";
|
||||
|
||||
networkmanager.enable = true;
|
||||
|
||||
nameservers = ["1.1.1.1" "1.0.0.1"];
|
||||
};
|
||||
|
||||
services = {
|
||||
cloudflare-warp.enable = (device == "laptop");
|
||||
|
||||
openssh = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
PrintMotd = true;
|
||||
X11Forwarding = true;
|
||||
AllowTcpForwarding = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
344
modules/packages.nix
Normal file
344
modules/packages.nix
Normal file
@@ -0,0 +1,344 @@
|
||||
{ lib, config, inputs, pkgs, options, device, ... }:
|
||||
|
||||
let
|
||||
nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz");
|
||||
|
||||
nix-alien = import (
|
||||
builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master"
|
||||
) {};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
nix-gaming.nixosModules.platformOptimizations
|
||||
nix-gaming.nixosModules.pipewireLowLatency
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
|
||||
cudaSupport = (device == "desktop");
|
||||
nvidia.acceptLicense = (device == "desktop");
|
||||
};
|
||||
|
||||
overlays = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
BROWSER = "firefox";
|
||||
NIXPKGS_ALLOW_UNFREE = 1;
|
||||
};
|
||||
|
||||
users.users.bug.packages = with pkgs; [
|
||||
vscode
|
||||
|
||||
(luajit.withPackages (ps: with ps; [
|
||||
luasocket
|
||||
bit32
|
||||
]))
|
||||
|
||||
go
|
||||
|
||||
(python3.withPackages (ps: with ps; [
|
||||
unidecode
|
||||
discordpy
|
||||
setuptools
|
||||
|
||||
pip
|
||||
pynput
|
||||
python-uinput
|
||||
|
||||
mido
|
||||
|
||||
pyautogui
|
||||
pygobject3
|
||||
pycairo
|
||||
|
||||
tkinter
|
||||
|
||||
numpy
|
||||
scipy
|
||||
imageio
|
||||
|
||||
evdev
|
||||
]))
|
||||
|
||||
nodejs
|
||||
|
||||
(blender.withPackages (ps: with ps; [
|
||||
libGLU
|
||||
gcc
|
||||
zlib
|
||||
xorg.libX11
|
||||
fontconfig
|
||||
pcre2
|
||||
xorg.libXext
|
||||
xorg.libxcb
|
||||
glib
|
||||
]))
|
||||
|
||||
plasticity
|
||||
obsidian
|
||||
vesktop
|
||||
nicotine-plus
|
||||
fastfetch
|
||||
tree
|
||||
gh
|
||||
scanmem
|
||||
samrewritten
|
||||
impression
|
||||
|
||||
mission-center
|
||||
|
||||
authenticator
|
||||
|
||||
steamtinkerlaunch
|
||||
|
||||
obs-studio
|
||||
|
||||
#prismlauncher
|
||||
|
||||
euphonica
|
||||
|
||||
kooha
|
||||
|
||||
loupe
|
||||
|
||||
arduino-ide
|
||||
|
||||
geary
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
home-manager
|
||||
comma
|
||||
nix-index
|
||||
|
||||
git
|
||||
wget
|
||||
|
||||
gcc
|
||||
gnumake
|
||||
|
||||
nmap
|
||||
inetutils
|
||||
|
||||
nix-prefetch
|
||||
nix-output-monitor
|
||||
nvd
|
||||
|
||||
nixfmt
|
||||
nixd
|
||||
nil
|
||||
|
||||
nh
|
||||
|
||||
gnome-boxes
|
||||
|
||||
openjdk
|
||||
zlib
|
||||
glfw
|
||||
glew
|
||||
|
||||
wine64
|
||||
wineWow64Packages.full
|
||||
|
||||
lug-helper
|
||||
|
||||
appimage-run
|
||||
|
||||
vulkan-tools
|
||||
vulkan-validation-layers
|
||||
vulkan-loader
|
||||
|
||||
pulseaudioFull
|
||||
|
||||
gamemode
|
||||
|
||||
winetricks
|
||||
|
||||
steam-run
|
||||
|
||||
firmware-updater
|
||||
|
||||
cosmic-applets
|
||||
cosmic-edit
|
||||
cosmic-ext-calculator
|
||||
cosmic-ext-tweaks
|
||||
cosmic-screenshot
|
||||
quick-webapps
|
||||
|
||||
nix-alien.nix-alien
|
||||
|
||||
file-roller
|
||||
unzip
|
||||
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-cosmic
|
||||
|
||||
mangohud
|
||||
mesa-demos
|
||||
|
||||
lutris
|
||||
|
||||
gnome-software
|
||||
|
||||
neovim
|
||||
|
||||
micro
|
||||
|
||||
inputs.hytale-launcher.packages.${pkgs.system}.default
|
||||
|
||||
baobab
|
||||
] ++ (if (device == "desktop") then [
|
||||
(nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override {
|
||||
tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ];
|
||||
})
|
||||
|
||||
libxshmfence
|
||||
|
||||
(appimage-run.override {
|
||||
extraPkgs = pkgs: [ pkgs.xorg.libxshmfence pkgs.linuxPackages.nvidia_x11 ];
|
||||
})
|
||||
] else [
|
||||
bambu-studio
|
||||
]);
|
||||
|
||||
services = {
|
||||
flatpak = {
|
||||
enable = true;
|
||||
|
||||
remotes = lib.mkOptionDefault [{
|
||||
name = "flathub-beta";
|
||||
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||
}];
|
||||
|
||||
update.auto.enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
|
||||
packages = [
|
||||
"org.vinegarhq.Sober"
|
||||
"org.vinegarhq.Vinegar"
|
||||
"org.gnome.Decibels"
|
||||
"org.pipewire.Helvum"
|
||||
"community.pathofbuilding.PathOfBuilding"
|
||||
|
||||
{
|
||||
appId = "com.hytale.Launcher";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
}}";
|
||||
}
|
||||
|
||||
# add Polytoria client
|
||||
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
||||
|
||||
{
|
||||
appId = "com.polytoria.launcher";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
}}";
|
||||
}
|
||||
];
|
||||
|
||||
overrides = {
|
||||
global = {
|
||||
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ollama = {
|
||||
enable = false;
|
||||
|
||||
loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"];
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
enableDefaultPackages = true;
|
||||
|
||||
packages = with pkgs; [
|
||||
twitter-color-emoji
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.droid-sans-mono
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
|
||||
defaultFonts = {
|
||||
emoji = [ "Twitter Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.firefox-bin;
|
||||
};
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = false;
|
||||
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
|
||||
gamescopeSession.enable = true;
|
||||
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
|
||||
platformOptimizations.enable = true;
|
||||
};
|
||||
|
||||
ydotool.enable = true;
|
||||
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
virt-manager.enable = true;
|
||||
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
|
||||
libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [
|
||||
libxml2
|
||||
udev
|
||||
gcc
|
||||
egl-wayland
|
||||
mesa
|
||||
libglvnd
|
||||
wayland
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXi
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
12
modules/security.nix
Normal file
12
modules/security.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
security = {
|
||||
polkit.enable = true;
|
||||
|
||||
sudo = {
|
||||
enable = true;
|
||||
wheelNeedsPassword = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
17
modules/swap.nix
Normal file
17
modules/swap.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
"fs.file-max" = 524288;
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 8 * 1024;
|
||||
}];
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryMax = 64 * 1024 * 1024 * 1024;
|
||||
};
|
||||
}
|
||||
19
modules/users.nix
Normal file
19
modules/users.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
users.users = {
|
||||
bug = {
|
||||
isNormalUser = true;
|
||||
description = "bug";
|
||||
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
||||
};
|
||||
} // (if (device == "server") then {
|
||||
levi = {
|
||||
isNormalUser = true;
|
||||
description = "levi";
|
||||
extraGroups = [ "wheel"];
|
||||
|
||||
hashedPassword = "$6$AqsDy7oxFOpjKZLM$kD0y3sc1b9xPTveqThhv2EyyhDh0WELrznYwCOQmZzVqEVWs6iG8PmLMstWSfpdloljciEW09u8vTRi1h0EBw1";
|
||||
};
|
||||
} else {});
|
||||
}
|
||||
9
modules/virtualisation.nix
Normal file
9
modules/virtualisation.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
virtualisation = {
|
||||
libvirtd.enable = true;
|
||||
|
||||
spiceUSBRedirection.enable = true;
|
||||
};
|
||||
}
|
||||
7
modules/vscode-server.nix
Normal file
7
modules/vscode-server.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
services = {
|
||||
vscode-server.enable = true;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user