Compare commits

..
Author SHA1 Message Date
wymiller 9ab3fb373a add: ollama waybar integration, modified cloud config to add ollama systemd service 2026-10-18 18:28:30 -04:00
wymiller 81cec030dc mod: screen capture
wip: want to do something different with this
2026-10-11 23:12:39 -04:00
wymiller b9ebc10f30 mod: change csharp lsp servers 2026-10-11 23:11:44 -04:00
wymiller 91ad28b207 mod: whitespace 2026-10-11 23:10:47 -04:00
wymiller 1e47ff812b mod: show public ip in waybar
on click to show
2026-10-11 23:10:30 -04:00
wymiller 744b773657 Merge remote-tracking branch 'origin' into desktops 2026-10-04 14:23:09 -04:00
wymiller 48999b0576 Merge remote-tracking branch 'origin' into desktops 2026-09-27 18:05:58 -04:00
wymiller b427889b06 add: desktop xdg integration 2026-09-23 18:43:38 -04:00
wymiller 9b60cdac2c Merge remote-tracking branch 'origin' into desktops 2026-09-22 15:27:38 -04:00
wymiller a387a4cd07 wip: added assortment of desktops
ai generated, needs some work/cleanup
2026-08-29 10:38:22 -04:00
14 changed files with 397 additions and 125 deletions
+14 -6
View File
@@ -2,7 +2,7 @@
"layer": "top",
"modules-left": ["sway/workspaces"],
"modules-center": ["clock"],
"modules-right": ["custom/playerctl", "custom/weather", "pulseaudio", "network", "tray"],
"modules-right": ["custom/playerctl", "custom/weather", "pulseaudio", "custom/network", "custom/ollama", "tray"],
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": true,
@@ -34,14 +34,22 @@
"exec": "wttrbar --fahrenheit --main-indicator 'temp_F' --location 'Grand Rapids'",
"return-type": "json"
},
"network": {
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": " {ipaddr}",
"format-disconnected": "⚠ Disconnected",
"family": "ipv4",
"custom/network": {
"format": "{text}",
"return-type": "json",
"exec": "bash $HOME/.config/waybar/network.sh",
"on-click": "bash $HOME/.config/waybar/network.sh toggle",
"interval": 5,
"tooltip": false
},
"custom/ollama": {
"format": "{text}",
"return-type": "json",
"exec": "bash $HOME/.config/waybar/ollama.sh",
"on-click": "bash $HOME/.config/waybar/ollama.sh toggle",
"interval": 2,
"tooltip": true
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -u
state_dir="${XDG_RUNTIME_DIR:-/tmp}/waybar-${UID}"
state_file="$state_dir/public-ip"
if [[ ${1:-} == toggle ]]; then
mkdir -p -m 700 "$state_dir"
if [[ -s $state_file ]]; then
: > "$state_file"
else
public_ip=$(curl -4fsS --max-time 5 https://wtfismyip.com/json 2>/dev/null |
jq -er '.YourFuckingIPAddress | select(type == "string") | split(".") |
select(length == 4 and all(.[]; test("^[0-9]{1,3}$") and (tonumber <= 255))) |
join(".")' 2>/dev/null) || exit 0
printf '%s\n' "$public_ip" > "$state_file"
fi
exit 0
fi
route=$(ip -4 route get 1.1.1.1 2>/dev/null) || route=
if [[ ! $route =~ [[:space:]]dev[[:space:]]([^[:space:]]+) ]]; then
jq -cn '{text: "⚠ Disconnected", class: "disconnected"}'
exit 0
fi
interface=${BASH_REMATCH[1]}
if [[ ! $route =~ [[:space:]]src[[:space:]]([0-9.]+) ]]; then
jq -cn '{text: "⚠ Disconnected", class: "disconnected"}'
exit 0
fi
local_ip=${BASH_REMATCH[1]}
if [[ -s $state_file ]]; then
jq -cn --rawfile ip "$state_file" '{text: (" " + ($ip | rtrimstr("\n"))), class: "public"}'
exit 0
fi
if [[ $(nmcli -g GENERAL.TYPE device show "$interface" 2>/dev/null) == wifi ]]; then
essid=$(nmcli -g GENERAL.CONNECTION device show "$interface" 2>/dev/null | head -n 1)
signal=$(nmcli -t -f IN-USE,SIGNAL device wifi list ifname "$interface" --rescan no 2>/dev/null |
awk -F: '$1 == "*" { print $2; exit }')
if [[ -n $essid && $essid != -- ]]; then
text="$essid"
[[ -n $signal ]] && text="${text} (${signal}%)"
else
text="$local_ip"
fi
else
text="$local_ip"
fi
jq -cn --arg text "$text" '{text: $text, class: "connected"}'
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -u
service=ollama.service
# The shared Waybar config is also used by hosts without Ollama.
if ! systemctl --user cat "$service" >/dev/null 2>&1; then
exit 0
fi
if [[ ${1:-} == toggle ]]; then
if systemctl --user is-active --quiet "$service"; then
systemctl --user stop "$service"
else
systemctl --user start "$service"
fi
exit $?
fi
if systemctl --user is-active --quiet "$service"; then
printf '%s\n' '{"text":"<span foreground=\"#9ece6a\">●</span> Local AI","tooltip":"Ollama is running. Click to stop it.","class":"running"}'
else
printf '%s\n' '{"text":"<span foreground=\"#f7768e\">●</span> Local AI","tooltip":"Ollama is stopped. Click to start it.","class":"stopped"}'
fi
+4 -3
View File
@@ -31,11 +31,12 @@ window#waybar {
#cpu,
#memory,
#pulseaudio,
#network,
#custom-network,
#custom-ollama,
#battery,
#clock,
#custom-playerctl {
padding: 0 10px;
padding: 0 5px;
margin: 0 5px;
}
@@ -65,7 +66,7 @@ window#waybar {
animation-direction: alternate;
}
#network.disconnected {
#custom-network.disconnected {
color: #cc241d;
}
Generated
+45 -45
View File
@@ -32,11 +32,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1791702392,
"narHash": "sha256-8uWZP3UiJBtYzBzazI18WvlshKYHxPb+8aqm02OxL5M=",
"lastModified": 1790492877,
"narHash": "sha256-RK9eeRQv9l3pQ8qNCdJ8fpkFCp/+QpNn7lR7Kkfrv8w=",
"ref": "refs/heads/master",
"rev": "ee2a27ad749d6d774e26c2be5de5f3a5ecd4a93f",
"revCount": 28,
"rev": "d3216bbe660f8265f1393ecf263ab5f8662f5a58",
"revCount": 26,
"type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/caitsith.git"
},
@@ -267,11 +267,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1792166485,
"narHash": "sha256-TL2RJ56FbBQNi6vsCXAn7QhZECh5DPbvzfiX6v+4r1A=",
"lastModified": 1790872110,
"narHash": "sha256-dXrMwUGE/9pT0J7MeW1BuYxpnnPPc52/oLxfqQF/5q8=",
"owner": "purpleclay",
"repo": "go-overlay",
"rev": "5971ffb6c5de960d37f3b85c53cb5a30387cd05a",
"rev": "8e136930a2a34c501d612f7b7b0ee8806531768f",
"type": "github"
},
"original": {
@@ -290,11 +290,11 @@
]
},
"locked": {
"lastModified": 1792166485,
"narHash": "sha256-TL2RJ56FbBQNi6vsCXAn7QhZECh5DPbvzfiX6v+4r1A=",
"lastModified": 1790872110,
"narHash": "sha256-dXrMwUGE/9pT0J7MeW1BuYxpnnPPc52/oLxfqQF/5q8=",
"owner": "purpleclay",
"repo": "go-overlay",
"rev": "5971ffb6c5de960d37f3b85c53cb5a30387cd05a",
"rev": "8e136930a2a34c501d612f7b7b0ee8806531768f",
"type": "github"
},
"original": {
@@ -313,11 +313,11 @@
"rust-overlay": "rust-overlay_3"
},
"locked": {
"lastModified": 1791702441,
"narHash": "sha256-qHf8tVIYu6OE1PKcthmpBgblg27u3bU7v4TVqy0B3jg=",
"lastModified": 1790492923,
"narHash": "sha256-pi8p2jRW9pprb0ZFH50/Z9Bxv0bKgddMXbLZ0D03L3w=",
"ref": "refs/heads/master",
"rev": "2c2e99f6347e9be744a72f7df6043015989d6cd7",
"revCount": 17,
"rev": "580082101efc0807637529e539886ee6c5f95672",
"revCount": 15,
"type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git"
},
@@ -333,11 +333,11 @@
]
},
"locked": {
"lastModified": 1792274446,
"narHash": "sha256-AM1HmBeDnB2B3dSiXuCYeu7Me+lHNpz/P39lVxGJBuQ=",
"lastModified": 1790996401,
"narHash": "sha256-f+kOxEmOUnQazVAmGg0i8hzwgd1kX/geY+k/Dpheye8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ab3823b4b24c0c3ca984c1f3ee577fd6d667424c",
"rev": "db7d5e2332710f5abb088f6b5de927d7f9511b35",
"type": "github"
},
"original": {
@@ -355,11 +355,11 @@
]
},
"locked": {
"lastModified": 1792098797,
"narHash": "sha256-u4DIIZgznEGzByxXrxWCXK19VcMtTBmi/M9gZ7Jk9bM=",
"lastModified": 1790989254,
"narHash": "sha256-ZN+riaeFuE+DZ5zfqJiXlM12jLwZzeIXiNkU1YeHMXI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "640725978b99076e18e069f6e7d2959124584f8f",
"rev": "acd21c5a3420a9d5fd0ed06299b10828267ef9ba",
"type": "github"
},
"original": {
@@ -417,11 +417,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1792030654,
"narHash": "sha256-OaQwAtPMTjQiY2sT/2/62UbSPhzP/0aDnWzMm/NCiUw=",
"lastModified": 1790920529,
"narHash": "sha256-nQyFkMR78WP6PiXKkDW2SjqzLf/spQqjRuxRGSbcV8k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "26f4107e47e3ad0ffd0db220469ba83b6f6d96e8",
"rev": "774debe7a0d1b496e35677ad955a1011c6ff74f3",
"type": "github"
},
"original": {
@@ -433,11 +433,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1792030654,
"narHash": "sha256-OaQwAtPMTjQiY2sT/2/62UbSPhzP/0aDnWzMm/NCiUw=",
"lastModified": 1790920529,
"narHash": "sha256-nQyFkMR78WP6PiXKkDW2SjqzLf/spQqjRuxRGSbcV8k=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "26f4107e47e3ad0ffd0db220469ba83b6f6d96e8",
"rev": "774debe7a0d1b496e35677ad955a1011c6ff74f3",
"type": "github"
},
"original": {
@@ -487,11 +487,11 @@
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1792344577,
"narHash": "sha256-Sbd2veIdg9iDiwwDeEKIiuk8FYMtjBXWvDlrrM0FjVA=",
"lastModified": 1791097561,
"narHash": "sha256-AmeVVy0WbW/y/sZv7ZGYn3dY6HuHPqvUgYorahAe4lM=",
"ref": "refs/heads/master",
"rev": "2debafc63297a24d2ca5c749b0d3f6bdbf6324cb",
"revCount": 113,
"rev": "55e8c40fbcd0c848c38002fdefb37de7084715be",
"revCount": 107,
"type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/nur.git"
},
@@ -507,11 +507,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1792175215,
"narHash": "sha256-XD64JVLV8iE4lR+W5gkTweEaT+SBwOrSy0+le2WgITI=",
"lastModified": 1790797021,
"narHash": "sha256-H2vA5yUaS58Wtdp46piMbRqSQe3Qn716i/oZPYoyhp8=",
"owner": "notashelf",
"repo": "nvf",
"rev": "a736b60b1e2019931168979951c94dc46e342957",
"rev": "2477cb0a5f394df36ddc72867c2657225d93d157",
"type": "github"
},
"original": {
@@ -563,11 +563,11 @@
]
},
"locked": {
"lastModified": 1791620365,
"narHash": "sha256-CVZXIDNw7HEwyD8X6q9Ln370Sc0ZqRlTzDRwOZ1hJMY=",
"lastModified": 1790407471,
"narHash": "sha256-M8elY2UShg4ZuLTiRLEHO+ae5xQFp3/ReQdxp/R+1UU=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e90fafa71b440fabcd52dd7fb017ab2da81c781a",
"rev": "4e9bb05a9ab6c37dc74c22974ebed6e36dc73eb2",
"type": "github"
},
"original": {
@@ -585,11 +585,11 @@
]
},
"locked": {
"lastModified": 1791620365,
"narHash": "sha256-CVZXIDNw7HEwyD8X6q9Ln370Sc0ZqRlTzDRwOZ1hJMY=",
"lastModified": 1790407471,
"narHash": "sha256-M8elY2UShg4ZuLTiRLEHO+ae5xQFp3/ReQdxp/R+1UU=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e90fafa71b440fabcd52dd7fb017ab2da81c781a",
"rev": "4e9bb05a9ab6c37dc74c22974ebed6e36dc73eb2",
"type": "github"
},
"original": {
@@ -606,11 +606,11 @@
]
},
"locked": {
"lastModified": 1792219666,
"narHash": "sha256-RMO08tKD+hFIL5ryWi85VY4aHE5oIpdV1h4kVFctOkw=",
"lastModified": 1791013993,
"narHash": "sha256-BiFPwFsbFnZH5GfWbQFKYuQNg+67aNQCoRSRNTeJFQc=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "a110337465cfb76e3806b81b9db3094c3e6e770a",
"rev": "7470661ba2b51156048af08464b82020223dc942",
"type": "github"
},
"original": {
@@ -624,11 +624,11 @@
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1792307278,
"narHash": "sha256-wJgFFtw/vlzsjWrQFmTn40TTkSkqHM4XXN0nh4q4uMk=",
"lastModified": 1791013993,
"narHash": "sha256-BiFPwFsbFnZH5GfWbQFKYuQNg+67aNQCoRSRNTeJFQc=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "42076d1c6a0fb405ed04f9a674e4a8f69de62ba3",
"rev": "7470661ba2b51156048af08464b82020223dc942",
"type": "github"
},
"original": {
-14
View File
@@ -1,7 +1,6 @@
{ lib
, pkgs
, userName
, isNixOS ? true
, ...
}: let
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
@@ -31,19 +30,6 @@ in
stateVersion = "24.11";
}
(lib.mkIf isNixOS {
sessionVariables = {
XDG_CURRENT_DESKTOP = "sway";
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP = "sway";
XDG_CONFIG_HOME = "$HOME/.config";
XDG_CACHE_HOME = "$HOME/.cache";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
NIXOS_OZONE_WL = "1";
};
})
(lib.mkIf pkgs.stdenv.isLinux {
pointerCursor = {
gtk.enable = true;
+4 -1
View File
@@ -27,7 +27,10 @@
enable = true;
lsp.servers = [ "typescript-language-server" "deno" ];
};
csharp.enable = true;
csharp = {
enable = true;
lsp.servers = [ "omnisharp" ];
};
};
utility.surround.enable = true;
+2 -8
View File
@@ -66,14 +66,8 @@
"The gods themselves will be my meal. Your dear companions my dessert. Upon this world I'll feast, and death shall follow in my wake. All your hate, all your rage, you will render unto me." \
"Boring, boring, boring" \
"Would you be 'happier' had I a 'good reason'?" \
"A test of your reflexes!" \
"Yer a wizard, Wyatt" \
"Yer a lizard, Wyatt" \
"Po-Tay-To boil em mash em stick em in a stew" \
"Oh look it's the cutie patootie potato!"
"What a charming young man" \
"Wyatt, you are smart, kind, and resilient. I believe in you no matter what life throws at you! Kick this project's butt!! - Nico" \
"Ganbatte!"
"A test of your reflexes!"
set choose_meme (random)"%"(count $memes)
set choose_meme $memes[(math $choose_meme"+1")]
+5 -1
View File
@@ -36,6 +36,10 @@ in {
xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config);
xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
xdg.configFile."waybar/network.sh".source = dirs.defaults + /waybar/network.sh;
xdg.configFile."waybar/ollama.sh".source = dirs.defaults + /waybar/ollama.sh;
home.packages = with pkgs; [ curl iproute2 networkmanager ];
programs.wofi = {
enable = pkgs.stdenv.isLinux;
@@ -153,6 +157,6 @@ in {
programs.waybar = {
enable = pkgs.stdenv.isLinux;
systemd.enable = true;
systemd.enable = false;
};
}
View File
+178
View File
@@ -0,0 +1,178 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.desktop;
defaultWaylandPackages = with pkgs; [
brightnessctl
cliphist
foot
grim
libnotify
mako
networkmanagerapplet
playerctl
polkit_gnome
pavucontrol
rofi
slurp
waybar
wl-clipboard
xdg-utils
];
defaultSwayPackages =
defaultWaylandPackages
++ (with pkgs; [
pulseaudio
swayidle
swaylock
wmenu
]);
resolvedDisplayManager =
if cfg.displayManager != "auto"
then cfg.displayManager
else if cfg.gnome.enable
then "gdm"
else if cfg.xfce.enable
then "lightdm"
else "none";
in {
imports = [./xdg.nix];
options.desktop = {
displayManager = lib.mkOption {
type = lib.types.enum ["auto" "none" "gdm" "lightdm" "ly"];
default = "auto";
description = ''
Display manager to enable. In auto mode, GDM is used when GNOME is
enabled, LightDM is used when XFCE is enabled, and no display manager
is enabled for compositor-only configurations.
'';
};
gnome.enable = lib.mkEnableOption "the vanilla GNOME desktop environment";
xfce.enable = lib.mkEnableOption "the vanilla XFCE desktop environment";
sway = {
enable = lib.mkEnableOption "the Sway Wayland compositor";
extraPackages = lib.mkOption {
type = with lib.types; listOf package;
default = defaultSwayPackages;
defaultText = lib.literalExpression ''
with pkgs; [
brightnessctl
cliphist
foot
grim
libnotify
mako
networkmanagerapplet
playerctl
polkit_gnome
pulseaudio
pavucontrol
rofi
slurp
swayidle
swaylock
waybar
wl-clipboard
wmenu
xdg-utils
]
'';
description = "Packages installed alongside Sway.";
};
};
hyprland = {
enable = lib.mkEnableOption "the Hyprland Wayland compositor";
extraPackages = lib.mkOption {
type = with lib.types; listOf package;
default = defaultWaylandPackages;
defaultText = lib.literalExpression ''
with pkgs; [
brightnessctl
cliphist
foot
grim
libnotify
mako
networkmanagerapplet
playerctl
polkit_gnome
pavucontrol
rofi
slurp
waybar
wl-clipboard
xdg-utils
]
'';
description = ''
Packages installed alongside Hyprland. Hyprlock and Hypridle are
enabled separately so their NixOS integration, including PAM, is
configured as well.
'';
};
};
};
config = lib.mkMerge [
(lib.mkIf cfg.gnome.enable {
services.desktopManager.gnome.enable = true;
})
(lib.mkIf cfg.xfce.enable {
services.xserver = {
enable = true;
desktopManager.xfce.enable = true;
};
})
(lib.mkIf cfg.sway.enable {
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
extraPackages = cfg.sway.extraPackages;
extraSessionCommands = ''
export XDG_SESSION_TYPE=wayland
export XDG_SESSION_DESKTOP=sway
export NIXOS_OZONE_WL=1
'';
};
})
(lib.mkIf cfg.hyprland.enable {
programs = {
hyprland.enable = true;
hyprlock.enable = lib.mkDefault true;
};
environment.systemPackages = cfg.hyprland.extraPackages;
})
(lib.mkIf (resolvedDisplayManager == "gdm") {
services.displayManager.gdm.enable = true;
})
(lib.mkIf (resolvedDisplayManager == "lightdm") {
services.xserver = {
enable = true;
displayManager.lightdm.enable = true;
};
})
(lib.mkIf (resolvedDisplayManager == "ly") {
services.displayManager.ly.enable = true;
})
];
}
+49
View File
@@ -0,0 +1,49 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.desktop;
needsGtkPortal = cfg.xfce.enable || cfg.hyprland.enable;
usesPortal = cfg.gnome.enable || cfg.xfce.enable || cfg.sway.enable || cfg.hyprland.enable;
in {
config = lib.mkMerge [
# GNOME and Sway configure their own portals in NixOS. XFCE needs a
# portal; Hyprland benefits from GTK as a fallback to its native one.
(lib.mkIf needsGtkPortal {
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
})
(lib.mkIf (cfg.sway.enable || needsGtkPortal) {
xdg.portal.config.common.default = ["gtk"];
})
(lib.mkIf cfg.sway.enable {
xdg.portal.wlr.settings.screencast = {
chooser_type = "dmenu";
chooser_cmd = "${pkgs.wmenu}/bin/wmenu -l 10 -p 'Select screen to share:'";
};
})
(lib.mkIf (usesPortal && config.services.gnome.gnome-keyring.enable) {
xdg.portal.config.common."org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
})
(lib.mkIf (cfg.sway.enable && config.services.gnome.gnome-keyring.enable) {
xdg.portal.config.sway."org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
})
# A per-desktop config takes precedence over Hyprland's packaged config,
# so include its native portal whenever adding a Secret preference.
(lib.mkIf (cfg.hyprland.enable && config.services.gnome.gnome-keyring.enable) {
xdg.portal.config.hyprland = {
default = ["hyprland" "gtk"];
"org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
};
})
];
}
+18 -26
View File
@@ -22,6 +22,7 @@ in {
})
../../apps/gaming.nix
../../apps/appimage.nix
../../desktop
../../graphics
../../pwrMgmt
../../networking/core.nix
@@ -74,7 +75,6 @@ in {
brightnessctl
wttrbar
cliphist
xdg-desktop-portal-gtk
xdg-utils
flatpak-xdg-utils
desktop-file-utils
@@ -86,9 +86,25 @@ in {
vlc
];
systemd.user.services.ollama = {
description = "Ollama local AI server";
serviceConfig = {
ExecStart = "${pkgs.ollama-rocm}/bin/ollama serve";
Restart = "on-failure";
Environment = [
"OLLAMA_HOST=0.0.0.0:11434"
"OLLAMA_CONTEXT_LENGTH=64000"
];
};
};
# Enable Polkit
security.polkit.enable = true;
# Enable desktop support (sway)
desktop.sway.enable = true;
desktop.displayManager = "ly";
# Graphics module (../../graphics/default.nix)
graphics = {
enable = true;
@@ -151,10 +167,7 @@ in {
# Core networking module (see ../../networking/core.nix)
network = {
firewall = {
enable = true;
firewalld.enable = true;
};
firewall.enable = true;
networkManager.enable = true;
};
@@ -192,27 +205,6 @@ in {
# AppImage support
appimage.enable = true;
# XDG stuff
xdg = {
portal = {
enable = true;
config = {
sway = {
default = ["wlr" "gtk"];
"org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
};
common = {
default = ["gtk"];
"org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
};
};
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
];
};
};
# sched_ext userspace CPU scheduling stuff - idk
services.scx = {
enable = true;
-21
View File
@@ -8,12 +8,6 @@ in {
options.network = {
firewall = {
enable = lib.mkEnableOption "system firewall";
firewalld.enable = lib.mkEnableOption "firewalld with its nftables backend";
nftables.extraConfig = lib.mkOption {
type = lib.types.lines;
default = "";
description = "Rules inside a separate inet nftables table alongside firewalld";
};
tcpPorts = {
ssh.enable = lib.mkEnableOption "SSH service port (22)";
web.enable = lib.mkEnableOption "common web service ports (80, 443)";
@@ -48,21 +42,6 @@ in {
};
};
config = {
assertions = [
{
assertion = cfg.firewall.nftables.extraConfig == "" || cfg.firewall.firewalld.enable;
message = "network.firewall.nftables.extraConfig requires network.firewall.firewalld.enable";
}
];
services.firewalld.enable = cfg.firewall.firewalld.enable;
networking.nftables = lib.mkIf cfg.firewall.firewalld.enable {
enable = true;
flushRuleset = false;
tables."local-extra" = lib.mkIf (cfg.firewall.nftables.extraConfig != "") {
family = "inet";
content = cfg.firewall.nftables.extraConfig;
};
};
networking.firewall = {
enable = cfg.firewall.enable;
allowedTCPPorts = lib.flatten [