This commit is contained in:
Lucy Hochkamp 2025-04-11 15:34:25 +02:00
parent 44307a3f6f
commit b69b80c93f
No known key found for this signature in database
13 changed files with 237 additions and 123 deletions

202
flake.lock generated
View file

@ -15,6 +15,27 @@
"type": "github"
}
},
"csharp-language-server": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs-master"
]
},
"locked": {
"lastModified": 1743998459,
"narHash": "sha256-/GCbTBG+oVzj4WlAXIXOdrN2IZaWqtbrZ3hGzIIf4eo=",
"owner": "sofusa",
"repo": "csharp-language-server",
"rev": "9f92214e73e01707bdf91f33c696368ecd739dab",
"type": "github"
},
"original": {
"owner": "sofusa",
"repo": "csharp-language-server",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -75,11 +96,29 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -125,6 +164,28 @@
"type": "github"
}
},
"helix": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs-master"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1743577054,
"narHash": "sha256-6dgyOlYg5eKSYfdOgbX3xqZhCfPlUir9UrkgIQa6KpA=",
"owner": "sofusa",
"repo": "helix-pull-diagnostics",
"rev": "f32f5fddbac6767a5ad29207ea727fa4c716103f",
"type": "github"
},
"original": {
"owner": "sofusa",
"repo": "helix-pull-diagnostics",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -132,11 +193,11 @@
]
},
"locked": {
"lastModified": 1742655702,
"narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
"lastModified": 1744117652,
"narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
"rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f",
"type": "github"
},
"original": {
@ -146,25 +207,24 @@
"type": "github"
}
},
"iamb": {
"home-manager_2": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs-master"
],
"rust-overlay": "rust-overlay"
"zen-browser",
"nixpkgs"
]
},
"locked": {
"lastModified": 1740367006,
"narHash": "sha256-TgkKx7NCxEXR7I6AY5CJ4fNC6BEXizJs1nt6zuik9E0=",
"owner": "ulyssa",
"repo": "iamb",
"rev": "b023e38f772f167f9c3a9e7d6dc105b2bc784a8e",
"lastModified": 1743604125,
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a",
"type": "github"
},
"original": {
"owner": "ulyssa",
"repo": "iamb",
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
@ -220,20 +280,20 @@
"lix": {
"flake": false,
"locked": {
"lastModified": 1729298361,
"narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
"rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
"lastModified": 1737234286,
"narHash": "sha256-pgDJZjj4jpzkFxsqBTI/9Yb0n3gW+DvDtuv9SwQZZcs=",
"rev": "079528098f5998ba13c88821a2eca1005c1695de",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/079528098f5998ba13c88821a2eca1005c1695de.tar.gz?rev=079528098f5998ba13c88821a2eca1005c1695de"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
"url": "https://git.lix.systems/lix-project/lix/archive/release-2.92.tar.gz"
}
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils_3",
"flakey-profile": "flakey-profile",
"lix": "lix",
"nixpkgs": [
@ -241,15 +301,15 @@
]
},
"locked": {
"lastModified": 1732605668,
"narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
"rev": "f19bd752910bbe3a861c9cad269bd078689d50fe",
"lastModified": 1742943028,
"narHash": "sha256-fprwZKE1uMzO9tiWWOrmLWBW3GPkMayQfb0xOvVFIno=",
"rev": "868d97695bab9d21f6070b03957bcace249fbe3c",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz?rev=f19bd752910bbe3a861c9cad269bd078689d50fe"
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/868d97695bab9d21f6070b03957bcace249fbe3c.tar.gz?rev=868d97695bab9d21f6070b03957bcace249fbe3c"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz"
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-3.tar.gz"
}
},
"nix-flatpak": {
@ -270,11 +330,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1742631601,
"narHash": "sha256-yJ3OOAmsGAxSl0bTmKUp3+cEYtSS+V6hUPK2rYhIPr8=",
"lastModified": 1744366945,
"narHash": "sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "380ed15bcd6440606c6856db44a99140d422b46f",
"rev": "1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1",
"type": "github"
},
"original": {
@ -286,27 +346,27 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1736320768,
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
"owner": "NixOS",
"lastModified": 1744168086,
"narHash": "sha256-S9M4HddBCxbbX1CKSyDYgZ8NCVyHcbKnBfoUXeRu2jQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
"rev": "60e405b241edb6f0573f3d9f944617fe33ac4a73",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-master": {
"locked": {
"lastModified": 1742738698,
"narHash": "sha256-KCtAXWwQs03JmEhP4ss59QVzT+rHZkhQO85KjNy8Crc=",
"lastModified": 1744378394,
"narHash": "sha256-pefnMwJsrpyJcJ27g++y7xQBFPm/QKnY6NiCaOsvDH4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f3a2a0601e9669a6e38af25b46ce6c4563bcb6da",
"rev": "2ae2efad112e0a57dbe6b27ef00291e3b38e5cca",
"type": "github"
},
"original": {
@ -332,22 +392,6 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1742512142,
"narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7105ae3957700a9646cc4b766f5815b23ed0c682",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
@ -382,11 +426,11 @@
]
},
"locked": {
"lastModified": 1743126528,
"narHash": "sha256-4fkwPgP7HatDWC2wntWnWekgkC7G6tNMtbUQKmNKFy4=",
"lastModified": 1743361017,
"narHash": "sha256-RELV9YxfhwjuN4edtVmpupVvHUiWu/KuF4mqzU+neYE=",
"owner": "SEIAROTg",
"repo": "quadlet-nix",
"rev": "e58deae6ca4cc331139360fbec53a6245aeb8a5c",
"rev": "971479231c7dd2433954dd26c240e1bdc5bd9849",
"type": "github"
},
"original": {
@ -397,14 +441,15 @@
},
"root": {
"inputs": {
"csharp-language-server": "csharp-language-server",
"helix": "helix",
"home-manager": "home-manager",
"iamb": "iamb",
"kmonad": "kmonad",
"lanzaboote": "lanzaboote",
"lix-module": "lix-module",
"nix-flatpak": "nix-flatpak",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs",
"nixpkgs-master": "nixpkgs-master",
"quadlet": "quadlet",
"zen-browser": "zen-browser"
@ -412,14 +457,17 @@
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": [
"helix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743302122,
"narHash": "sha256-VWyaUfBY49kjN29N140INa9LEW0YIgAr+OEJRdbKfnQ=",
"lastModified": 1740623427,
"narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "15c2a7930e04efc87be3ebf1b5d06232e635e24b",
"rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab",
"type": "github"
},
"original": {
@ -479,18 +527,34 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs-master"
]
},
"locked": {
"lastModified": 1742736106,
"narHash": "sha256-wzdYoYASPlITYBiw2xDyE56DnOcLNsO6QHRGUDj6kq4=",
"lastModified": 1744345419,
"narHash": "sha256-wLozT8CpHvu04t0LKxJ9fzKAZ8AULpC7XfgIOLgtUbM=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "7c3008fcc5a436c885d3faaf6d058afc41ae3762",
"rev": "ec5c1df02b5d7806dcfa89191e671ebdf00ee6b5",
"type": "github"
},
"original": {

View file

@ -11,7 +11,6 @@
quadlet.url = "github:SEIAROTg/quadlet-nix";
quadlet.inputs.nixpkgs.follows = "nixpkgs";
# software
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
@ -20,18 +19,23 @@
inputs.nixpkgs.follows = "nixpkgs";
};
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-3.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser.url = "github:0xc000022070/zen-browser-flake";
zen-browser.inputs.nixpkgs.follows = "nixpkgs-master";
iamb.url = "github:ulyssa/iamb";
iamb.inputs.nixpkgs.follows = "nixpkgs-master";
kmonad = {
url = "git+https://github.com/jokesper/kmonad?dir=nix&ref=feat-tap-overlap";
inputs.nixpkgs.follows = "nixpkgs";
};
# helix
helix.url = "github:sofusa/helix-pull-diagnostics";
helix.inputs.nixpkgs.follows = "nixpkgs-master";
csharp-language-server.url = "github:sofusa/csharp-language-server";
csharp-language-server.inputs.nixpkgs.follows = "nixpkgs-master";
};
outputs =

View file

@ -23,6 +23,10 @@ in
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
};
qt = {
enable = true;
style.name = "breeze";
};
};
}

View file

@ -19,11 +19,11 @@ in
## python
ruff-lsp
# nodePackages_latest.pyright
# inputs.roslyn-language-server.packages.${pkgs.system}.roslyn-language-server
inputs.csharp-language-server.packages.${pkgs.system}.csharp-language-server
netcoredbg
];
programs.helix = {
# package = inputs.helix.packages.${pkgs.system}.default;
package = inputs.helix.packages.${pkgs.system}.default;
enable = true;
defaultEditor = true;
settings = {
@ -113,8 +113,8 @@ in
command = "ruff-lsp";
config.settings.args = [ "--ignore" "E501" ];
};
language-server.roslyn = {
command = "roslyn-language-server";
language-server.csharp = {
command = "csharp-language-server";
};
language = lib.flatten [
(map
@ -134,7 +134,7 @@ in
}
{
name = "c-sharp";
language-servers = [ "roslyn" ];
language-servers = [ "csharp" ];
formatter = { command = "dotnet"; args = [ "csharpier" ]; };
}

View file

@ -12,6 +12,7 @@
{ ... }:
{
xyno.git.enable = true;
xyno.borgmatic.enable = true;
home.packages = [
# work
pkgs.jetbrains.rider
@ -39,11 +40,13 @@
environment.systemPackages = with pkgs; [
aerc
jabref
inputs.iamb.packages.${pkgs.system}.default
glib # rider wants gsettings
(pkgs.writeShellScriptBin "sudo" "run0 $@")
];
time.timeZone = "Europe/Berlin";
networking.firewall.allowedTCPPorts = [ 1880 2021 ];
networking.firewall.allowedUDPPorts = [ 1880 2021 ];
services.tailscale.enable = true;
services.tailscale.useRoutingFeatures = "client";

View file

@ -22,6 +22,7 @@ in
# systemd.user.services.foot.wantedBy = lib.mkForce [ cfg.wantedBy ];
# systemd.user.sockets.foot.wantedBy = lib.mkForce [ cfg.wantedBy ];
systemd.packages = [ cfg.package ];
xyno.desktop.niri.term = lib.mkDefault "footclient";
programs.foot = {
enable = true;
package = cfg.package;

View file

@ -0,0 +1,49 @@
{
pkgs,
config,
lib,
...
}:
let
cfg = config.xyno.desktop.fuzzel;
in
{
options.xyno.desktop.fuzzel.enable = lib.mkEnableOption "enable fuzzel launcher";
options.xyno.desktop.fuzzel.wantedBy = lib.mkOption {
type = lib.types.str;
default = "niri.service";
};
options.xyno.desktop.fuzzel.package = lib.mkOption {
type = lib.types.package;
default = pkgs.fuzzel;
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
xyno.desktop.niri.launcher = lib.mkDefault "fuzzel";
environment.etc."xdg/fuzzel/fuzzel.ini".text = ''
font=JetBrains Mono Nerd Font:size=10
dpi-aware=yes
# prompt=>
icon-theme=hicolor
icons-enabled=yes
match-mode=fuzzy
launch-prefix=systemd-run --user --scope
width=80
horizontal-pad=10
vertical-pad=10
inner-pad=10
line-height=18
[colors]
background=000000AA
text=efefefef
match=fabd2fff
selection-match=fabd2fff
selection=666666ff
selection-text=efefefef
border=33eeffee
[border]
width=2
radius=3
'';
};
}

View file

@ -25,6 +25,7 @@ in
default = pkgs.mako;
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package pkgs.libnotify ];
systemd.user.services.mako = {
unitConfig.PartOf = "graphical-session.target";
unitConfig.After = "graphical-session.target";

View file

@ -24,14 +24,17 @@ let
in
{
options.xyno.desktop.niri.enable = lib.mkEnableOption "enable the niri desktop with xynos config";
options.xyno.desktop.niri.launcher = lib.mkOption { type = lib.types.str; };
options.xyno.desktop.niri.term = lib.mkOption { type = lib.types.str; };
config = lib.mkIf cfg.enable {
xyno.desktop = {
waybar.enable = lib.mkDefault true;
foot.enable = lib.mkDefault true;
fuzzel.enable = lib.mkDefault true;
mako.enable = lib.mkDefault true;
shikane.enable = lib.mkDefault true;
swayidle.enable = lib.mkDefault true;
waybar.enable = lib.mkDefault true;
wpaperd.enable = lib.mkDefault true;
foot.enable = lib.mkDefault true;
};
home-manager.users.${config.xyno.system.user.name} =
lib.mkIf config.xyno.presets.home-manager.enable
@ -47,35 +50,6 @@ in
# wlr.enable = true;
# };
programs.niri.enable = true;
environment.systemPackages = with pkgs; [
fuzzel
libnotify
];
environment.etc."xdg/fuzzel/fuzzel.ini".text = ''
font=JetBrains Mono Nerd Font:size=10
dpi-aware=yes
# prompt=>
icon-theme=hicolor
icons-enabled=yes
match-mode=fuzzy
launch-prefix=systemd-run --user --scope
width=80
horizontal-pad=10
vertical-pad=10
inner-pad=10
line-height=18
[colors]
background=000000AA
text=efefefef
match=fabd2fff
selection-match=fabd2fff
selection=666666ff
selection-text=efefefef
border=33eeffee
[border]
width=2
radius=3
'';
environment.etc."niri/config.kdl".mode = "444"; # copy file so niri detects changes
environment.etc."niri/config.kdl".text = ''
// xwayland
@ -85,10 +59,10 @@ in
}
// keybinds
binds {
Mod+D { spawn "fuzzel"; }
Mod+D { spawn "${cfg.launcher}"; }
Mod+Alt+L { spawn "lock"; }
Mod+T { spawn "footclient"; }
Mod+Y { spawn "footclient yazi"; }
Mod+T { spawn "${cfg.term}"; }
Mod+Y { spawn "${cfg.term} yazi"; }
Mod+P { spawn "keepassxc"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
@ -375,7 +349,7 @@ in
// Place steam notifications in the bottom right
window-rule {
match app-id="steam" title="^notificationtoasts_[\\d]+_desktop$"
default-floating-position x=o y=o relative-to="bottom-right"
default-floating-position x=0 y=0 relative-to="bottom-right"
}
input {

View file

@ -424,7 +424,7 @@ in
};
options.xyno.desktop.waybar.package = lib.mkOption {
type = lib.types.package;
default = pkgs.unstable.waybar;
default = pkgs.unstable.waybar.override { hyprlandSupport = false; }; # we don't use it and hyprland seems to not build on current master
};
options.xyno.desktop.waybar.mode = lib.mkOption {
type = lib.types.str;

View file

@ -5,6 +5,7 @@
./desktop/common-programs.nix
./desktop/fcitx5.nix
./desktop/foot.nix
./desktop/fuzzel.nix
./desktop/mako.nix
./desktop/mate-polkit.nix
./desktop/niri.nix

View file

@ -16,6 +16,14 @@ in
security.sudo.enable = false;
nix.settings = {
substituters = [
"https://cache.lix.systems"
"https://helix.cachix.org"
];
trusted-public-keys = [
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
];
trusted-users = lib.mkDefault [
"root"
"@wheel"
@ -62,6 +70,7 @@ in
ripgrep
pv
yt-dlp
moar
helix
lm_sensors
dig
@ -70,9 +79,10 @@ in
programs.mosh.enable = true;
environment.variables.EDITOR = "hx";
environment.variables.VISUAL = "hx";
environment.variables.PAGER= "moar";
environment.shellAliases = {
l = "ls -al";
l = "ls -alh";
n = "yazi";
gc = "git commit -v";
gpl = "git pull";

View file

@ -51,18 +51,22 @@ in
services.gnome.gnome-settings-daemon.enable = true;
services.gvfs.enable = true;
xdg.terminal-exec = {
enable = true;
settings.default = [ "foot.desktop" ];
};
environment.sessionVariables.GTK_USE_PORTAL = "1";
home-manager.users.${config.xyno.system.user.name} =
{ pkgs, ... }:
{
xdg.desktopEntries.nemo = {
name = "Nemo";
exec = "${pkgs.nemo-with-extensions}/bin/nemo";
};
xdg.mimeApps = {
enable = true;
defaultApplications = {
"inode/directory" = [ "nemo.desktop" ];
"application/x-gnome-saved-search" = [ "nemo.desktop" ];
"x-scheme-handler/mailto" = [ "aerc.desktop" ];
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
"application/x-gnome-saved-search" = [ "org.gnome.Nautilus.desktop" ];
"x-scheme-handler/http" = "userapp-Zen-D2P132.desktop";
"x-scheme-handler/https" = "userapp-Zen-D2P132.desktop";
"x-scheme-handler/chrome" = "userapp-Zen-D2P132.desktop";
@ -80,7 +84,6 @@ in
};
environment.systemPackages = with pkgs; [
nemo-with-extensions
kdePackages.breeze-gtk
kdePackages.breeze.qt5
kdePackages.breeze