misc: zed editor, try to get scream working, other small changes

This commit is contained in:
Evar 2025-05-13 11:40:10 -04:00
parent ab001fac00
commit 8a928e8f58
6 changed files with 67 additions and 27 deletions

View file

@ -5,6 +5,7 @@
imports = [
./apps/firefox.nix
./apps/syncthing.nix
./apps/zed.nix
];
home.packages = [
@ -23,7 +24,7 @@
pkgs.libreoffice
pkgs.gimp
pkgs.krita
pkgs.okular
pkgs.kdePackages.okular
pkgs.localsend
pkgs.ffmpeg # Generally useful
@ -49,6 +50,7 @@
#pkgs.zed-editor
pkgs.obsidian
pkgs.quickemu
];
programs.mpv.enable = true; # media player

22
home/apps/zed.nix Normal file
View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
programs.zed-editor = {
enable = true;
extensions = [
"dockerfile"
# disabled until https://github.com/eth0net/zed-docker-compose/issues/2
# "docker-compose"
"nix"
];
installRemoteServer = true;
userSettings = {
"vim_mode" = true;
"terminal"."shell"."program" = "fish";
"lsp"."package-version-server"."binary"."path" = pkgs.package-version-server + "/bin/package-version-server";
"lsp"."nixd"."binary"."path" = pkgs.nixd + "/bin/nixd";
"lsp"."nil"."binary"."path" = pkgs.nil + "/bin/nil";
};
};
}

View file

@ -32,6 +32,7 @@
pkgs.pciutils # lspci
pkgs.usbutils # lsusb
pkgs.btop
pkgs.bottom
pkgs.htop
pkgs.lsof

View file

@ -6,9 +6,9 @@
...
}:
{
imports = [
imports = [
inputs.disko.nixosModules.disko
./device.nix
./disk-config.nix
./hardware-configuration.nix
@ -28,7 +28,7 @@
./vm.nix
(import ./kvmfr.nix { std = inputs.nix-std.lib; lib = lib; pkgs = pkgs; config = config; })
./libvirtd.nix
./osrs.nix
];
@ -51,7 +51,7 @@
vfio = {
enable = true;
earlyKMS = true;
earlyKMS = true;
applyACSpatch = true;
};
@ -86,7 +86,7 @@
# };
# Allows referring to this flake by the shorthand `nixos-config`, which lets you do e.g.
# nix repl nixos-config
# nix repl nixos-config
nix.registry.nixos-config.to = {
type = "git";
url = "file://${config.users.users.evar.home}/git/nixos-framework-laptop-config";
@ -94,7 +94,7 @@
# In order to catch all logs, we need to mount this early enough in the boot process.
fileSystems."/var/log".neededForBoot = true;
zramSwap = {
enable = true;
memoryPercent = 25;
@ -186,7 +186,11 @@
### System software
nixpkgs.config.allowUnfree = true;
environment.systemPackages = [
pkgs.unifi
pkgs.git
pkgs.gdu
@ -254,4 +258,4 @@
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
}
}

View file

@ -4,6 +4,10 @@
pkgs,
...
}: {
# to allow me to be an exit node
boot.kernel.sysctl."net.ipv4.ip_forward" = 1;
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
services.tailscale = {
enable = true;
openFirewall = true;

View file

@ -90,22 +90,26 @@ in {
networking.dhcpcd.denyInterfaces = [ "winvm0" ];
# TODO: the below doesn't actually work, so I just
# disable wait-online entirely.
# ensure the bridge network doesn't cause us to wait
# on boot
systemd.network.wait-online.ignoredInterfaces = [ "eth0" "winvm0" ];
# systemd.network.wait-online.ignoredInterfaces = [ "eth0" "winvm0" ];
systemd.network.wait-online.anyInterface = true;
boot.initrd.systemd.network.wait-online.ignoredInterfaces = [ "eth0" "winvm0" ];
# These are needed, since I'm not currently trying to
# reserve a static IP for the bridge interface
networking.defaultGateway = { address = "10.0.0.1"; interface = "eth0"; };
networking.interfaces.winvm0 = {
useDHCP = false;
ipv4 = {
addresses = [
{ address = "10.0.5.1"; prefixLength = 16; }
{ address = "10.0.5.1"; prefixLength = 24; }
];
routes = [{
address = "10.0.0.0";
prefixLength = 16;
address = "10.0.5.1";
prefixLength = 24;
options = { scope = "link"; metric = "900"; };
}];
};
@ -148,22 +152,25 @@ in {
# note that the VM needs 64 MB for the shmem in side the
# xml for the full res of the FW laptop
# systemd.tmpfiles.rules = [
# "f /dev/shm/scream 0660 evar qemu-libvirtd -"
# "f /dev/shm/looking-glass 0660 evar qemu-libvirtd -"
# ];
systemd.tmpfiles.rules = [
"f /dev/shm/scream 0660 evar qemu-libvirtd -"
];
# service for hooking up scream for audio
# systemd.user.services.scream-ivshmem = {
# enable = true;
# description = "Scream IVSHMEM";
# serviceConfig = {
# ExecStart = "${pkgs.scream}/bin/scream-ivshmem-pulse /dev/shm/scream";
# Restart = "always";
# };
# wantedBy = [ "multi-user.target" ];
# requires = [ "pulseaudio.service" ];
# };
systemd.user.services.scream-ivshmem = {
enable = true;
description = "Scream";
serviceConfig = {
ExecStart = "${pkgs.scream}/bin/scream -v -n scream -o pulse -m /dev/shm/scream";
Restart = "always";
};
wantedBy = [ "multi-user.target" ];
requires = [
"pipewire-pulse.service"
"pipewire.service"
"sound.target"
];
};
boot = {
initrd.kernelModules = [
@ -215,7 +222,7 @@ in {
"interfaces" = "virbr0";
# note: localhost is the ipv6 localhost ::1
"hosts allow" = "192.168.122.";
"hosts allow" = "192.168.122. 100.64.0.0/10";
# "hosts deny" = "0.0.0.0/0";
"guest account" = "nobody";
"map to guest" = "bad user";