Compare commits

...

16 commits

16 changed files with 388 additions and 269 deletions

50
flake.lock generated
View file

@ -269,8 +269,12 @@
}, },
"niri": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": [
"niri-unstable": "niri-unstable", "niri-blur"
],
"niri-unstable": [
"niri-blur"
],
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
@ -281,48 +285,33 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1771514840, "lastModified": 1771682768,
"narHash": "sha256-t3WbZvwoDj/75YDX/nwkZuxanZLZaWr9meSfKswaN6g=", "narHash": "sha256-RJ9RVJSAktCgWiqLDCjYmx9KgMuLaszUrI28k92Pa2I=",
"owner": "sodiboo", "owner": "sckova",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "4f69ab280e9bb34e2c0b67fdfa6f0978a170ef56", "rev": "383bd9d32706b163807b05983418069b2e692310",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "sodiboo", "owner": "sckova",
"ref": "feat/blur",
"repo": "niri-flake", "repo": "niri-flake",
"type": "github" "type": "github"
} }
}, },
"niri-stable": { "niri-blur": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1756556321, "lastModified": 1771672342,
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", "narHash": "sha256-52CxMRH2kVGpsPBiZM+996b6i/3XkmOrySm5zqwWc+o=",
"owner": "YaLTeR", "owner": "niri-wm",
"repo": "niri", "repo": "niri",
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", "rev": "86f42d1ed9ab787c52ace073e0b3218e26530d25",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "YaLTeR", "owner": "niri-wm",
"ref": "v25.08", "ref": "wip/branch",
"repo": "niri",
"type": "github"
}
},
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1771305475,
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"type": "github" "type": "github"
} }
@ -555,6 +544,7 @@
"catppuccin-discord": "catppuccin-discord", "catppuccin-discord": "catppuccin-discord",
"home-manager": "home-manager", "home-manager": "home-manager",
"niri": "niri", "niri": "niri",
"niri-blur": "niri-blur",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs-unstable"

View file

@ -44,11 +44,16 @@
}; };
niri = { niri = {
url = "github:sodiboo/niri-flake"; url = "github:sckova/niri-flake/feat/blur";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs-stable"; inputs.nixpkgs-stable.follows = "nixpkgs-stable";
# inputs.niri-stable.follows = "niri-blur"; inputs.niri-stable.follows = "niri-blur";
# inputs.niri-unstable.follows = "niri-blur"; inputs.niri-unstable.follows = "niri-blur";
};
niri-blur = {
url = "github:niri-wm/niri/wip/branch";
flake = false;
}; };
# niri-blur = { # niri-blur = {
@ -215,6 +220,7 @@
} }
./system ./system
./system/searxng ./system/searxng
./system/torrenting
./system/widevine ./system/widevine
./system/shell/fish.nix ./system/shell/fish.nix
./system/tailscale ./system/tailscale
@ -306,23 +312,23 @@
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; } { nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; }
]; ];
}; };
alien = mkNixosSystem {
alien = hostname = "alien";
mkNixosSystem { system = "x86_64-linux";
hostname = "alien"; extraModules = [
system = "x86_64-linux"; {
extraModules = [ nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ];
{ nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ]; }
];
}
// nixpkgs.lib.genAttrs supportedSystems (
system:
mkNixosSystem {
hostname = "vm-generic";
inherit system;
} }
); ];
}; };
}
// nixpkgs.lib.genAttrs supportedSystems (
system:
mkNixosSystem {
hostname = "vm-generic";
inherit system;
}
);
homeConfigurations = { homeConfigurations = {
peach = mkHomeConfig { peach = mkHomeConfig {

View file

@ -207,7 +207,7 @@
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.showWeather" = false; "browser.newtabpage.activity-stream.showWeather" = false;
"browser.download.autoHideButton" = false; "browser.download.autoHideButton" = false;
"browser.startup.homepage" = "http://localhost:8080/"; "browser.startup.homepage" = "http://localhost:5364/";
# Disable Firefox's machine learning (AI) features # Disable Firefox's machine learning (AI) features
"browser.ml.enable" = false; "browser.ml.enable" = false;
@ -369,7 +369,7 @@
searxng = { searxng = {
name = "SearXNG"; name = "SearXNG";
urls = [ { template = "http://localhost:8080/search?q={searchTerms}"; } ]; urls = [ { template = "http://localhost:5364/search?q={searchTerms}"; } ];
icon = searchIcon; icon = searchIcon;
definedAliases = [ "@go" ]; definedAliases = [ "@go" ];
}; };

View file

@ -48,7 +48,6 @@
libreoffice-qt-fresh libreoffice-qt-fresh
# nur.repos.forkprince.helium-nightly # nur.repos.forkprince.helium-nightly
chromium chromium
qbittorrent
nautilus nautilus
fractal fractal
tuba tuba

View file

@ -1,15 +1,10 @@
{ {
config,
pkgs, pkgs,
... ...
}: }:
{ {
home = { home.packages = with pkgs; [ openmw ];
packages = with pkgs; [ openmw ]; home.sessionVariables.SDL_VIDEO_DRIVER = "wayland";
sessionVariables = {
SDL_VIDEO_DRIVER = "wayland";
};
};
programs.firefox.profiles.default.search.engines.uesp = { programs.firefox.profiles.default.search.engines.uesp = {
name = "Unofficial Elder Scrolls Pages"; name = "Unofficial Elder Scrolls Pages";

View file

@ -6,7 +6,7 @@
}: }:
{ {
colors = { colors = {
scheme = "catppuccin-latte"; scheme = "deep-oceanic-next";
accent = "base09"; accent = "base09";
}; };
@ -19,11 +19,6 @@
moonlight-qt moonlight-qt
]; ];
# https://github.com/YaLTeR/niri/issues/2330#issuecomment-3256864777
programs.niri.settings.debug = {
render-drm-device = "/dev/dri/card2";
};
programs.noctalia-shell.settings.bar = { programs.noctalia-shell.settings.bar = {
position = "top"; position = "top";
density = "spacious"; density = "spacious";

View file

@ -31,6 +31,8 @@
home.sessionVariables = { home.sessionVariables = {
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
# this makes electron apps work per the wiki
NIXOS_OZONE_WL = "1";
}; };
gtk = { gtk = {

View file

@ -28,16 +28,14 @@
Description = "Mount Synology NAS with Rclone and Home Manager."; Description = "Mount Synology NAS with Rclone and Home Manager.";
After = [ "tailscaled.service" ]; After = [ "tailscaled.service" ];
Wants = [ "tailscaled.service" ]; Wants = [ "tailscaled.service" ];
StartLimitBurst = 5;
StartLimitIntervalSec = "1m";
}; };
Service = { Service = {
Type = "simple"; Type = "simple";
# ExecStartPre = "${pkgs.writeShellScript "synology-prep" '' Restart = "on-failure";
# if mountpoint -q %h/Synology; then RestartSec = "1m";
# /run/wrappers/bin/fusermount -uz %h/Synology
# fi
# ${pkgs.coreutils}/bin/mkdir -p %h/Synology
# ''}";
ExecStart = "${pkgs.writeShellScript "synology-mount" '' ExecStart = "${pkgs.writeShellScript "synology-mount" ''
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
@ -65,49 +63,4 @@
WantedBy = [ "default.target" ]; WantedBy = [ "default.target" ];
}; };
}; };
# systemd.user.services.synology-prefill = {
# Unit = {
# Description = "Prefill Synology NAS rclone cache";
# After = [ "synology-mount.service" ];
# Wants = [ "synology-mount.service" ];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.writeShellScript "synology-prefill" ''
# #!/usr/bin/env bash
# set -euo pipefail
# ${pkgs.rclone}/bin/rclone rc vfs/refresh -v --fast-list recursive=true >/dev/null
# ''}";
# StandardOutput = "journal";
# StandardError = "journal";
# Restart = "on-failure";
# };
# Install = {
# WantedBy = [ "default.target" ];
# };
# };
# systemd.user.services.input-leap = {
# Unit = {
# Description = "Autostart Input Leap";
# After = [ "graphical-session.target" ];
# };
# Service = {
# Type = "oneshot";
# RemainAfterExit = true;
# PassEnvironment = "DISPLAY";
# ExecStart = "${pkgs.writeShellScript "input-leap-start" ''
# sleep 5
# ${pkgs.input-leap}/bin/input-leap
# ''}";
# };
# Install = {
# WantedBy = [ "graphical-session.target" ];
# };
# };
} }

View file

@ -1,12 +1,11 @@
{ {
pkgs, pkgs,
config, config,
lib,
... ...
}: }:
{ {
home.sessionVariables = { home.sessionVariables.EDITOR = lib.mkForce "kitty nvim";
EDITOR = "nvim";
};
home.packages = with pkgs; [ home.packages = with pkgs; [
kdePackages.qtdeclarative kdePackages.qtdeclarative

View file

@ -1,6 +1,5 @@
{ {
config, config,
pkgs,
... ...
}: }:
{ {
@ -29,7 +28,6 @@
input = { input = {
focus-follows-mouse.enable = true; focus-follows-mouse.enable = true;
focus-follows-mouse.max-scroll-amount = "0%"; focus-follows-mouse.max-scroll-amount = "0%";
warp-mouse-to-focus.enable = true;
mod-key = "Super"; mod-key = "Super";
keyboard = { keyboard = {
numlock = false; numlock = false;
@ -84,13 +82,11 @@
}; };
cursor = { cursor = {
hide-when-typing = false; hide-when-typing = false;
# hide-after-inactive-ms = 10000;
size = config.userOptions.cursor.size; size = config.userOptions.cursor.size;
theme = config.userOptions.cursor.name; theme = config.userOptions.cursor.name;
}; };
layout = { layout = {
gaps = 4; gaps = 4;
# background-color = base10;
background-color = "transparent"; background-color = "transparent";
default-column-width = { default-column-width = {
proportion = 0.5; proportion = 0.5;
@ -103,16 +99,16 @@
border = { border = {
enable = true; enable = true;
width = 2; width = 2;
active.color = config.scheme.withHashtag.${config.colors.accent}; active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
inactive.color = base01; inactive.color = base01 + "E6";
urgent.color = base12; urgent.color = base12 + "E6";
}; };
focus-ring = { focus-ring = {
enable = false; enable = false;
width = 2; width = 2;
active.color = config.scheme.withHashtag.${config.colors.accent}; active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
inactive.color = base01; inactive.color = base01 + "E6";
urgent.color = base12; urgent.color = base12 + "E6";
}; };
shadow = { shadow = {
enable = true; enable = true;
@ -122,12 +118,6 @@
softness = 30; softness = 30;
color = base11 + "BF"; color = base11 + "BF";
}; };
# blur = {
# enable = true;
# passes = 4;
# radius = 4;
# noise = 0.1;
# };
}; };
window-rules = [ window-rules = [
{ {
@ -138,7 +128,13 @@
bottom-right = 8.0; bottom-right = 8.0;
}; };
clip-to-geometry = true; clip-to-geometry = true;
opacity = 1.0; opacity = 0.90;
background-effect = {
xray = false;
blur = true;
noise = 0.05;
saturation = 1;
};
} }
{ {
matches = [ matches = [
@ -159,9 +155,20 @@
{ {
app-id = "vesktop$"; app-id = "vesktop$";
} }
{
app-id = "org.gnome.Nautilus$";
}
]; ];
block-out-from = "screen-capture"; block-out-from = "screen-capture";
} }
{
matches = [
{
is-active = false;
}
];
opacity = 0.875;
}
{ {
matches = [ matches = [
{ {
@ -173,17 +180,63 @@
title = "Minecraft"; title = "Minecraft";
} }
]; ];
open-maximized = true; open-maximized-to-edges = true;
open-focused = true; open-focused = true;
} }
{
matches = [
{
app-id = "mpv";
}
{
app-id = "firefox";
title = "Picture-in-Picture";
}
];
opacity = 1.0;
}
{
# Kitty Fastfetch window
matches = [
{
app-id = "kitty";
title = "^fastfetch$";
}
];
open-floating = true;
baba-is-float = true;
min-width = 960;
min-height = 480;
max-width = 960;
max-height = 480;
}
]; ];
layer-rules = [ layer-rules = [
{ {
matches = [ matches = [ { namespace = "noctalia-bar-content-.*$"; } ];
{ background-effect = {
namespace = "^wpaperd.*"; xray = false;
} blur = true;
]; noise = 0.05;
saturation = 1;
};
}
{
matches = [ { namespace = "noctalia-bar-exclusion-top-.*$"; } ];
place-within-backdrop = true;
}
{
matches = [ { namespace = "^launcher$"; } ];
opacity = 0.925;
background-effect = {
xray = false;
blur = true;
noise = 0.05;
saturation = 1;
};
}
{
matches = [ { namespace = "^wallpaper$"; } ];
place-within-backdrop = true; place-within-backdrop = true;
} }
]; ];
@ -194,6 +247,10 @@
action.spawn = [ "kitty" ]; action.spawn = [ "kitty" ];
hotkey-overlay.title = "Open a Terminal: kitty"; hotkey-overlay.title = "Open a Terminal: kitty";
}; };
"Mod+Shift+T" = {
action.spawn-sh = [ "kitty --title fastfetch sh -c 'fastfetch; sleep 10'" ];
hotkey-overlay.title = "Open a Terminal with Fastfetch";
};
"Mod+Space" = { "Mod+Space" = {
action.spawn = [ "fuzzel" ]; action.spawn = [ "fuzzel" ];
hotkey-overlay.title = "Run an Application: Noctalia app launcher"; hotkey-overlay.title = "Run an Application: Noctalia app launcher";
@ -342,29 +399,13 @@
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86Sleep" = { "XF86Sleep".action.power-off-monitors = { };
action.power-off-monitors = { };
};
"XF86Search" = { "XF86Search".action.spawn = [ "fuzzel" ];
action.spawn = [
"noctalia-shell"
"ipc"
"call"
"launcher"
"toggle"
];
allow-when-locked = true;
};
"XF86LaunchA" = { "XF86LaunchA" = {
action.spawn = [ action.toggle-overview = { };
"niri" repeat = false;
"msg"
"action"
"toggle-overview"
];
allow-when-locked = true;
}; };
"Mod+O" = { "Mod+O" = {
@ -492,18 +533,14 @@
"Mod+Ctrl+Shift+F".action.fullscreen-window = { }; "Mod+Ctrl+Shift+F".action.fullscreen-window = { };
"Mod+C".action.center-column = { }; "Mod+C".action.center-column = { };
"Mod+Ctrl+C".action.center-visible-columns = { }; "Mod+Ctrl+C".action.center-visible-columns = { };
"Mod+Minus".action.set-column-width = "-10%"; "Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%"; "Mod+Equal".action.set-column-width = "+10%";
"Mod+Shift+Minus".action.set-window-height = "-10%"; "Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%"; "Mod+Shift+Equal".action.set-window-height = "+10%";
"Mod+Ctrl+Minus".action.set-column-width = "-0.25%"; "Mod+Ctrl+Minus".action.set-column-width = "-0.25%";
"Mod+Ctrl+Equal".action.set-column-width = "+0.25%"; "Mod+Ctrl+Equal".action.set-column-width = "+0.25%";
"Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%"; "Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%";
"Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%"; "Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%";
@ -512,18 +549,10 @@
"Mod+W".action.toggle-column-tabbed-display = { }; "Mod+W".action.toggle-column-tabbed-display = { };
"Print".action.screenshot = { "Print".action.screenshot.show-pointer = false;
show-pointer = false; "Mod+Shift+S".action.screenshot.show-pointer = false;
}; "Ctrl+Print".action.screenshot-screen.show-pointer = false;
"Mod+Shift+S".action.screenshot = { "Alt+Print".action.screenshot-window.show-pointer = false;
show-pointer = false;
};
"Ctrl+Print".action.screenshot-screen = {
show-pointer = false;
};
"Alt+Print".action.screenshot-window = {
show-pointer = false;
};
"Mod+Escape" = { "Mod+Escape" = {
action.toggle-keyboard-shortcuts-inhibit = { }; action.toggle-keyboard-shortcuts-inhibit = { };

View file

@ -63,7 +63,7 @@
bar = { bar = {
autoHideDelay = 500; autoHideDelay = 500;
autoShowDelay = 150; autoShowDelay = 150;
backgroundOpacity = 1; backgroundOpacity = 0.90;
monitors = [ ]; monitors = [ ];
showCapsule = true; showCapsule = true;
barType = "simple"; barType = "simple";
@ -79,7 +79,7 @@
outerCorners = false; outerCorners = false;
screenOverrides = [ ]; screenOverrides = [ ];
showOutline = false; showOutline = false;
useSeparateOpacity = false; useSeparateOpacity = true;
widgets = { widgets = {
center = [ ]; center = [ ];
left = [ left = [
@ -206,7 +206,7 @@
deviceNativePath = "__default__"; deviceNativePath = "__default__";
displayMode = "icon-hover"; displayMode = "icon-hover";
hideIfIdle = false; hideIfIdle = false;
hideIfNotDetected = false; hideIfNotDetected = true;
id = "Battery"; id = "Battery";
showNoctaliaPerformance = false; showNoctaliaPerformance = false;
showPowerProfiles = true; showPowerProfiles = true;
@ -613,8 +613,6 @@
]; ];
}; };
Install = { Install.WantedBy = [ "niri.service" ];
WantedBy = [ "niri.service" ];
};
}; };
} }

View file

@ -4,78 +4,104 @@
... ...
}: }:
{ {
home.packages = with pkgs; [ systemd.user.services.wbg-daemon = {
wpaperd Unit.Description = "Wallpaper service using wbg (daemon)";
]; Service.ExecStart = ''
${pkgs.wbg}/bin/wbg -s \
home.file.".config/wpaperd/config.toml" = { %h/.local/share/wallpaper/daily-colored.jpg
text = ''
[default]
mode = "center"
[any]
path = "/home/${config.userOptions.username}/.local/share/wallpaper/daily.jpg"
''; '';
force = true; Install.WantedBy = [ "niri.service" ];
};
systemd.user.services.wpaperd = {
Unit = {
Description = "Modern wallpaper daemon for Wayland";
PartOf = [ "niri.service" ];
Requires = [ "niri.service" ];
After = [ "niri.service" ];
};
Service = {
ExecStart = "${pkgs.wpaperd}/bin/wpaperd";
};
Install = {
WantedBy = [ "niri.service" ];
};
}; };
systemd.user.services.bing-wallpaper = { systemd.user.services.bing-wallpaper = {
Unit = { Unit.Description = "Download and set Bing wallpaper of the day";
Description = "Download and set Bing wallpaper of the day"; Unit.StartLimitBurst = 6;
After = [ "network-online.target" ]; Unit.StartLimitIntervalSec = "10m";
Wants = [ "network-online.target" ]; Service.Restart = "on-failure";
}; Service.RestartSec = "10s";
Service = { Service.Type = "oneshot";
Type = "oneshot"; Service.ExecStart = pkgs.lib.getExe (
ExecStart = pkgs.writeShellScript "bing-wallpaper" '' pkgs.writeShellApplication {
OUT="''${XDG_DATA_HOME:-$HOME/.local/share}/wallpaper/daily.jpg" name = "bing-wallpaper";
runtimeInputs = with pkgs; [
wget
jq
coreutils
libnotify
];
text = ''
OUT="$HOME/.local/share/wallpaper/daily.jpg"
API=$(wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1")
BASE=$(echo "$API" | jq -r '.images[0].urlbase')
TITLE=$(echo "$API" | jq -r '.images[0].title')
API_RESP=$(${pkgs.wget}/bin/wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1") || exit 1 mkdir -p "$HOME/.local/share/wallpaper"
wget -qO "$OUT" "https://www.bing.com''${BASE}_UHD.jpg"
URL_BASE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'urlbase":"[^"]*' | cut -d '"' -f 3) notify-send \
TITLE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'title":"[^"]*' | cut -d '"' -f 3) -a "Wallpaper of the day" \
-u low \
${pkgs.coreutils}/bin/mkdir -p "$(dirname "$OUT")" -i preferences-desktop-wallpaper \
${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$URL_BASE\_UHD.jpg" || \ "$TITLE"
${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'url":"[^"]*' | cut -d '"' -f 3)" '';
}
${pkgs.libnotify}/bin/notify-send \ );
-a "Bing Wallpaper Service" \ Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user start gowall-convert.service";
-u low \ Install.WantedBy = [ "niri.service" ];
-i preferences-desktop-wallpaper \
"$TITLE"
'';
ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wpaperd.service";
};
Install = {
WantedBy = [ "niri.service" ];
};
}; };
systemd.user.timers.bing-wallpaper = { systemd.user.timers.bing-wallpaper = {
Unit = { Unit.Description = "Run bing wallpaper retrieval daily";
Description = "Run bing wallpaper retrieval daily"; Timer.OnCalendar = "*-*-* 10:00:00 GMT";
}; Timer.Persistent = true;
Timer = { Install.WantedBy = [ "timers.target" ];
OnCalendar = "*-*-* 10:00:00 GMT";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
}; };
systemd.user.services.gowall-convert = {
Unit.Description = "Convert a wallpaper to the system color scheme";
Unit.StartLimitBurst = 6;
Unit.StartLimitIntervalSec = "10m";
Service.Restart = "on-failure";
Service.RestartSec = "10s";
Service.Type = "oneshot";
Service.ExecStart = ''
${pkgs.gowall}/bin/gowall convert \
%h/.local/share/wallpaper/daily.jpg \
--output %h/.local/share/wallpaper/daily-colored.jpg \
-t nix
'';
Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wbg-daemon.service";
};
home.file.".config/gowall/config.yml".text = with config.scheme.withHashtag; ''
themes:
- name: "nix"
colors:
- "${base06}"
- "${base0F}"
- "${base17}"
- "${base0E}"
- "${base08}"
- "${base12}"
- "${base09}"
- "${base0A}"
- "${base0B}"
- "${base0C}"
- "${base15}"
- "${base16}"
- "${base0D}"
- "${base07}"
- "${base05}"
- "${base07}"
- "${base0D}"
- "${base0D}"
- "${base04}"
- "${base04}"
- "${base04}"
- "${base03}"
- "${base02}"
- "${base00}"
- "${base01}"
- "${base11}"
'';
} }

View file

@ -2,28 +2,16 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ {
config,
pkgs, pkgs,
... ...
}: }:
{ {
environment.sessionVariables = {
# this makes electron apps work per the wiki
NIXOS_OZONE_WL = "1";
};
boot = { boot = {
plymouth = { plymouth.enable = true;
enable = true; plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
};
loader = { loader = {
timeout = 3; timeout = 3;
# systemd-boot = {
# enable = true;
# consoleMode = lib.mkForce "auto";
# configurationLimit = 10;
# };
limine = { limine = {
enable = true; enable = true;
maxGenerations = 10; maxGenerations = 10;
@ -40,7 +28,6 @@
}; };
}; };
}; };
# efi.canTouchEfiVariables = true;
}; };
kernelParams = [ kernelParams = [
"quiet" "quiet"
@ -55,9 +42,93 @@
initrd.verbose = false; initrd.verbose = false;
}; };
networking.networkmanager.enable = true; programs = {
hardware.bluetooth.enable = true; gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-curses;
};
niri.enable = true;
niri.package = pkgs.niri-unstable;
dconf.enable = true;
dconf.profiles.user = {
databases = [
{
# breaks user-level indirect config of dconf
# lockAll = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
clock-format = "12h";
clock-show-weekday = true;
};
"org/gnome/desktop/wm/preferences" = {
button-layout = ":";
action-double-click-titlebar = "'none'";
};
"org/gnome/desktop/media-handling" = {
automount = false;
automount-open = false;
autorun-never = true;
};
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing";
};
"org/gnome/mutter" = {
edge-tiling = true;
dynamic-workspaces = true;
experimental-features = [ "variable-refresh-rate" ];
};
};
}
];
};
};
# aerothemeplasma = {
# enable = true;
# plasma.enable = true;
# fonts.enable = false;
# plymouth.enable = false;
# sddm.enable = true;
# };
services = {
desktopManager.plasma6.enable = true;
displayManager = {
sddm.enable = true;
sddm.wayland.enable = true;
defaultSession = "niri";
};
gnome.gnome-keyring.enable = true;
libinput.enable = true;
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
udisks2.enable = true;
gvfs.enable = true;
upower.enable = true;
power-profiles-daemon.enable = true;
openssh.enable = true;
};
environment.systemPackages = with pkgs; [
git
firefoxpwa
];
security.pam.services.niri.enableGnomeKeyring = config.services.gnome.gnome-keyring.enable;
networking.firewall.enable = false;
networking.networkmanager.enable = true;
documentation.man.enable = true;
documentation.man.generateCaches = false;
hardware.graphics.enable = true;
hardware.bluetooth.enable = true;
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {
@ -72,6 +143,7 @@
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
}; };
<<<<<<< HEAD
# Enable OpenGL # Enable OpenGL
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
@ -174,6 +246,8 @@
services.openssh.enable = true; services.openssh.enable = true;
=======
>>>>>>> cd53682 (update system/default.nix)
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,7 +1,7 @@
{ catppuccin, ... }: { ... }:
{ {
home-manager.users.sckova = { home-manager.users.sckova = {
imports = [ catppuccin.homeModules.catppuccin ]; imports = [ ];
}; };
services.spice-vdagentd.enable = true; services.spice-vdagentd.enable = true;

View file

@ -16,7 +16,7 @@
pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out" pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out"
) )
); );
port = 8080; port = 5364;
bind_address = "127.0.0.1"; bind_address = "127.0.0.1";
}; };

View file

@ -0,0 +1,53 @@
{
lib,
config,
pkgs,
...
}:
{
users.users.sckova.extraGroups = [ "qbittorrent" ];
services = {
qbittorrent = {
enable = true;
serverConfig = {
Preferences = {
Advanced.useSystemIconTheme = true;
General = {
CloseToTray = false;
CloseToTrayNotified = true;
ExitConfirm = false;
Locale = "en";
};
WebUI = {
Address = "*";
Enabled = true;
Port = 9697;
UseUPnP = false;
};
BitTorrent = {
SessionGlobalDLSpeedLimit = 0;
GlobalUPSpeedLimit = 0;
Port = 42578;
QueueingSystemEnabled = false;
SSL.Port = 63114;
StartPaused = false;
};
};
};
};
flaresolverr = {
enable = true;
port = 8191;
};
prowlarr = {
enable = true;
settings = {
server = {
urlbase = "localhost";
port = 9696;
bindaddress = "*";
};
};
};
};
}