wpaperd initial config

This commit is contained in:
Charlie Root 2024-07-24 17:47:16 +02:00
commit b9824d3aa7
14 changed files with 205 additions and 192 deletions

View file

@ -17,17 +17,14 @@
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
]; ];
# enable flakes # enable flakes
experimental-features = ["nix-command" "flakes"];
# reduce file size used & automatic garbage collector # reduce file size used & automatic garbage collector
auto-optimise-store = true;
max-jobs = 3;
cores = 4;
}; };
}; };
security.sudo.package = pkgs.sudo.override {withInsults = true;}; security.sudo.package = pkgs.sudo.override {withInsults = true;};
security.polkit.enable = true; security.polkit.enable = true;
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
virtualisation.docker.enable = true;
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest; boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
modules = { modules = {
system = { system = {
@ -63,6 +60,7 @@
}; };
services = { services = {
locate.enable = true; locate.enable = true;
wpaperd.enable = true;
media.mpd = { media.mpd = {
enable = true; enable = true;
musicDirectory = "/home/${config.modules.other.system.username}/Nextcloud/Media/Music"; musicDirectory = "/home/${config.modules.other.system.username}/Nextcloud/Media/Music";

View file

@ -6,17 +6,12 @@
nixpkgs-wayland = inputs'.nixpkgs-wayland.packages; nixpkgs-wayland = inputs'.nixpkgs-wayland.packages;
in { in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
abaddon
alsa-utils alsa-utils
asciinema asciinema
bibata-cursors
blanket blanket
broot
browsh
cachix
calc
calibre calibre
cbonsai cbonsai
coreutils
cmake cmake
cmus cmus
difftastic difftastic
@ -69,6 +64,7 @@ in {
nitch nitch
nixpkgs-wayland.swww nixpkgs-wayland.swww
nmap nmap
nodejs_20
notesnook notesnook
obsidian obsidian
onlyoffice-bin onlyoffice-bin
@ -89,26 +85,18 @@ in {
shotwell shotwell
signal-desktop-beta signal-desktop-beta
smartmontools smartmontools
strawberry
teamspeak_client teamspeak_client
telegram-desktop telegram-desktop
texliveFull
tldr tldr
thunderbird thunderbird
tor-browser tor-browser
trash-cli trash-cli
tree tree
ttyper ttyper
typst
# typstfmt does not work either
typstyle
typst-lsp
unzip unzip
util-linux util-linux
v4l-utils v4l-utils
ventoy-full
vlc vlc
vscodium
wget wget
wine wine
winetricks winetricks
@ -116,9 +104,7 @@ in {
wl-clipboard wl-clipboard
xdg-utils xdg-utils
xournalpp xournalpp
yt-dlp
zapzap zapzap
zip zip
zoxide
]; ];
} }

View file

@ -11,7 +11,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.nh = { programs.nh = {
enable = true; enable = true;
clean.enable = true; clean.enable = false;
clean.extraArgs = "--keep-since 4d --keep 3"; clean.extraArgs = "--keep-since 4d --keep 3";
flake = "/home/vali/projects/nichts"; flake = "/home/vali/projects/nichts";
}; };

View file

@ -10,6 +10,6 @@ _: {
./runners ./runners
./styling ./styling
./options ./options
#./system/nix/module.nix ./system/nix/module.nix
]; ];
} }

View file

@ -1,6 +1,4 @@
{config, ...}: let _: {
inherit (config.modules.other.system) username;
in {
programs.neovim-flake.settings.vim = { programs.neovim-flake.settings.vim = {
gestures.gesture-nvim.enable = false; gestures.gesture-nvim.enable = false;
}; };

View file

@ -62,8 +62,8 @@ in {
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]''; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]'';
}; };
cursor = { cursor = {
style = "block"; style = "beam";
blink = "false"; blink = "true";
}; };
mouse = { mouse = {
hide-when-typing = "yes"; hide-when-typing = "yes";

View file

@ -4,6 +4,7 @@
in { in {
options.modules.usrEnv.services = { options.modules.usrEnv.services = {
locate.enable = mkEnableOption "Locate service"; locate.enable = mkEnableOption "Locate service";
wpaperd.enable = mkEnableOption "Wpaperd wallpaper daemon";
media = { media = {
mpd = { mpd = {
enable = mkEnableOption "mpd service"; enable = mkEnableOption "mpd service";

View file

@ -0,0 +1,22 @@
{
lib,
pkgs,
config,
}: let
inherit (config.modules.other.system) username;
cfg = config.modules.usrEnv.services.wpaperd;
inherit (lib) mkIf;
in {
config = mkIf cfg.enable {
home-manager.users.${username} = {
programs.wpaperd = {
enable = true;
package = pkgs.wpaperd;
settings.any = {
mode = "center";
path = "/home/vali/projects/nichts/assets/wallpapers/river.png";
};
};
};
};
}

View file

@ -4,25 +4,25 @@
# whether to enable the `doc` output of packages # whether to enable the `doc` output of packages
# generally in ${pkg}/share/ as plaintext or html # generally in ${pkg}/share/ as plaintext or html
# # can shave off a few megabytes # # can shave off a few megabytes
# doc.enable = false; doc.enable = false;
#
# # whether to install the `info` command and the `info` # whether to install the `info` command and the `info`
# # output of packages # output of packages
# info.enable = false; info.enable = false;
#
# man = { man = {
# # Whether to install manual pages # Whether to install manual pages
# # this means packages that provide a `man` output will have said output # this means packages that provide a `man` output will have said output
# # included in the final closure # included in the final closure
# enable = true; enable = true;
#
# # Whether to generate the manual page index caches # Whether to generate the manual page index caches
# # if true, it becomes possible to search for a page or keyword # if true, it becomes possible to search for a page or keyword
# # using utilities like apropos(1) and the -k option of man(1). # using utilities like apropos(1) and the -k option of man(1).
# generateCaches = true; generateCaches = true;
#
# # Whether to enable mandoc as the default man page viewer. # Whether to enable mandoc as the default man page viewer.
# mandoc.enable = false; # my default manpage viewer is Neovim, so this isn't necessary mandoc.enable = false; # my default manpage viewer is Neovim, so this isn't necessary
# }; };
}; };
} }

View file

@ -1,79 +1,79 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [ imports = [
./documentation.nix # nixos documentation ./documentation.nix # nixos documentation
./nixpkgs.nix # global nixpkgs configuration.nix # ./nixpkgs.nix # global nixpkgs configuration.nix
]; ];
nix = { nix = {
# Lix, Nix but gay! # Lix, Nix but gay!
# package = pkgs.lix; package = pkgs.lix;
#
# # Run the Nix daemon on lowest possible priority so that my system # Run the Nix daemon on lowest possible priority so that my system
# # stays responsive during demanding tasks such as GC and builds. # stays responsive during demanding tasks such as GC and builds.
# # This is especially useful while auto-gc and auto-upgrade are enabled # This is especially useful while auto-gc and auto-upgrade are enabled
# # as they can be quite demanding on the CPU. # as they can be quite demanding on the CPU.
# daemonCPUSchedPolicy = "idle"; daemonCPUSchedPolicy = "idle";
# daemonIOSchedClass = "idle"; daemonIOSchedClass = "idle";
# daemonIOSchedPriority = 7; daemonIOSchedPriority = 7;
#
# # Collect garbage # Collect garbage
# gc = { gc = {
# automatic = true; automatic = true;
# dates = "20:00"; dates = "20:00";
# options = "--delete-older-than 7d"; options = "--delete-older-than 7d";
# persistent = false; # don't try to catch up on missed GC runs persistent = false; # don't try to catch up on missed GC runs
# }; };
#
# # Automatically optimize nix store by removing hard links # Automatically optimize nix store by removing hard links
# # do it after the gc. # do it after the gc.
# optimise = { optimise = {
# automatic = true; automatic = true;
# dates = ["21:00"]; dates = ["21:00"];
# }; };
#
settings = { settings = {
# Tell nix to use the xdg spec for base directories # Tell nix to use the xdg spec for base directories
# while transitioning, any state must be carried over # while transitioning, any state must be carried over
# manually, as Nix won't do it for us. # manually, as Nix won't do it for us.
# use-xdg-base-directories = true; use-xdg-base-directories = true;
#
# # Automatically optimise symlinks # Automatically optimise symlinks
# auto-optimise-store = true; auto-optimise-store = true;
#
# # Allow sudo users to mark the following values as trusted # Allow sudo users to mark the following values as trusted
# allowed-users = ["root" "@wheel" "nix-builder"]; allowed-users = ["root" "@wheel" "nix-builder"];
#
# # Only allow sudo users to manage the nix store # Only allow sudo users to manage the nix store
# trusted-users = ["root" "@wheel" "nix-builder"]; trusted-users = ["root" "@wheel" "nix-builder"];
#
# # Let the system decide the number of max jobs # Let the system decide the number of max jobs
# # based on available system specs. Usually this is # based on available system specs. Usually this is
# # the same as the number of cores your CPU has. # the same as the number of cores your CPU has.
# max-jobs = "auto"; max-jobs = "auto";
#
# # Always build inside sandboxed environments # Always build inside sandboxed environments
# sandbox = true; sandbox = true;
# sandbox-fallback = false; sandbox-fallback = false;
#
# # Continue building derivations even if one fails # Continue building derivations even if one fails
# keep-going = true; keep-going = true;
#
# # Fallback to local builds after remote builders are unavailable. # Fallback to local builds after remote builders are unavailable.
# # Setting this too low on a slow network may cause remote builders # Setting this too low on a slow network may cause remote builders
# # to be discarded before a connection can be established. # to be discarded before a connection can be established.
# connect-timeout = 5; connect-timeout = 5;
#
# # If we haven't received data for >= 20s, retry the download # If we haven't received data for >= 20s, retry the download
# stalled-download-timeout = 20; stalled-download-timeout = 20;
#
# # Show more logs when a build fails and decides to display # Show more logs when a build fails and decides to display
# # a bunch of lines. `nix log` would normally provide more # a bunch of lines. `nix log` would normally provide more
# # information, but this may save us some time and keystrokes. # information, but this may save us some time and keystrokes.
# log-lines = 30; log-lines = 30;
#
# # Extra features of Nix that are considered unstable # Extra features of Nix that are considered unstable
# # and experimental. By default we should always include # and experimental. By default we should always include
# # `flakes` and `nix-command`, while others are usually # `flakes` and `nix-command`, while others are usually
# optional. # optional.
extra-experimental-features = [ extra-experimental-features = [
"flakes" # flakes "flakes" # flakes
@ -82,39 +82,39 @@
]; ];
# Ensures that the result of Nix expressions is fully determined by # Ensures that the result of Nix expressions is fully determined by
# # explicitly declared inputs, and not influenced by external state. # explicitly declared inputs, and not influenced by external state.
# # In other words, fully stateless evaluation by Nix at all times. # In other words, fully stateless evaluation by Nix at all times.
# # pure-eval = true; pure-eval = true;
#
# # Don't warn me that my git tree is dirty, I know. # Don't warn me that my git tree is dirty, I know.
# warn-dirty = false; warn-dirty = false;
#
# # Maximum number of parallel TCP connections # Maximum number of parallel TCP connections
# # used to fetch imports and binary caches. # used to fetch imports and binary caches.
# # 0 means no limit, default is 25. # 0 means no limit, default is 25.
# http-connections = 50; # lower values fare better on slow connections http-connections = 50; # lower values fare better on slow connections
#
# # Whether to accept nix configuration from a flake # Whether to accept nix configuration from a flake
# # without displaying a Y/N prompt. For those obtuse # without displaying a Y/N prompt. For those obtuse
# # enough to keep this true, I wish the best of luck. # enough to keep this true, I wish the best of luck.
# # tl;dr: this is a security vulnerability. # tl;dr: this is a security vulnerability.
# accept-flake-config = false; accept-flake-config = false;
#
# # Whether to execute builds inside cgroups. cgroups are # Whether to execute builds inside cgroups. cgroups are
# # "a Linux kernel feature that limits, accounts for, and # "a Linux kernel feature that limits, accounts for, and
# # isolates the resource usage (CPU, memory, disk I/O, etc.) # isolates the resource usage (CPU, memory, disk I/O, etc.)
# # of a collection of processes." # of a collection of processes."
# # See: # See:
# # <https://en.wikipedia.org/wiki/Cgroups> # <https://en.wikipedia.org/wiki/Cgroups>
# # use-cgroups = pkgs.stdenv.isLinux; # only supported on Linux use-cgroups = pkgs.stdenv.isLinux; # only supported on Linux
#
# # for direnv GC roots # for direnv GC roots
# keep-derivations = true; keep-derivations = true;
# keep-outputs = true; keep-outputs = true;
#
# # Use binary cache, this is not Gentoo # Use binary cache, this is not Gentoo
# # external builders can also pick up those substituters # external builders can also pick up those substituters
# builders-use-substitutes = true; builders-use-substitutes = true;
# Substituters to pull from. While sigs are disabled, we must # Substituters to pull from. While sigs are disabled, we must
# make sure the substituters listed here are trusted. # make sure the substituters listed here are trusted.
@ -146,7 +146,7 @@
# and contribute heavily to you wanting to get a new desktop. # and contribute heavily to you wanting to get a new desktop.
# For those curious (such as myself) desktops are always seen as "AC powered" # For those curious (such as myself) desktops are always seen as "AC powered"
# so the system will not fail to fire if you are on a desktop system. # so the system will not fail to fire if you are on a desktop system.
# systemd.services.nix-gc = { systemd.services.nix-gc = {
# unitConfig.ConditionACPower = true; unitConfig.ConditionACPower = true;
# }; };
} }

View file

@ -5,41 +5,42 @@
nixpkgs = { nixpkgs = {
# Configuration reference: # Configuration reference:
# <https://nixos.org/manual/nixpkgs/unstable/#chap-packageconfig> # <https://nixos.org/manual/nixpkgs/unstable/#chap-packageconfig>
# config = { hostPlatform = "x86_64-linux";
# # Allow broken packages to be built. Setting this to false means packages config = {
# # will refuse to evaluate sometimes, but only if they have been marked as # Allow broken packages to be built. Setting this to false means packages
# # broken for a specific reason. At that point we can either try to solve # will refuse to evaluate sometimes, but only if they have been marked as
# # the breakage, or get rid of the package entirely. # broken for a specific reason. At that point we can either try to solve
# allowBroken = false; # the breakage, or get rid of the package entirely.
# allowUnsupportedSystem = true; allowBroken = false;
# allowUnsupportedSystem = true;
# # Really a pain in the ass to deal with when disabled. True means
# # we are able to build unfree packages without explicitly allowing # Really a pain in the ass to deal with when disabled. True means
# # each unfree package. # we are able to build unfree packages without explicitly allowing
# allowUnfree = true; # each unfree package.
# allowUnfree = true;
# # Default to none, add more as necessary. This is usually where
# # electron packages go when they reach EOL. # Default to none, add more as necessary. This is usually where
# permittedInsecurePackages = []; # electron packages go when they reach EOL.
# permittedInsecurePackages = [];
# # Nixpkgs sets internal package aliases to ease migration from other
# # distributions easier, or for convenience's sake. Even though the manual # Nixpkgs sets internal package aliases to ease migration from other
# # and the description for this option recommends this to be true, I prefer # distributions easier, or for convenience's sake. Even though the manual
# # explicit naming conventions, i.e., no aliases. # and the description for this option recommends this to be true, I prefer
# allowAliases = true; # explicit naming conventions, i.e., no aliases.
# allowAliases = true;
# # Enable parallel building by default. This, in theory, should speed up building
# # derivations, especially rust ones. However setting this to true causes a mass rebuild # Enable parallel building by default. This, in theory, should speed up building
# # of the *entire* system closure, so it must be handled with proper care. # derivations, especially rust ones. However setting this to true causes a mass rebuild
# enableParallelBuildingByDefault = false; # of the *entire* system closure, so it must be handled with proper care.
# enableParallelBuildingByDefault = true;
# # List of derivation warnings to display while rebuilding.
# # See: <https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix> # List of derivation warnings to display while rebuilding.
# # NOTE: "maintainerless" can be added to emit warnings # See: <https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix>
# # about packages without maintainers but it seems to me # NOTE: "maintainerless" can be added to emit warnings
# # like there are more packages without maintainers than # about packages without maintainers but it seems to me
# # with maintainers, so it's disabled for the time being. # like there are more packages without maintainers than
# showDerivationWarnings = []; # with maintainers, so it's disabled for the time being.
# }; showDerivationWarnings = [];
};
}; };
} }

View file

@ -118,7 +118,6 @@ in {
"30, monitor:DP-2" "30, monitor:DP-2"
# scratchpads # scratchpads
"special:btop, decorate:false"
"special:pipewire, decorate:false" "special:pipewire, decorate:false"
"special:nixos, decorate:false" "special:nixos, decorate:false"
"special:keepassxc, decorate:false" "special:keepassxc, decorate:false"
@ -278,7 +277,6 @@ in {
"$mainMod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" "$mainMod, E, exec, ${pkgs.xfce.thunar}/bin/thunar"
# Toggle the four different special workspaces. # Toggle the four different special workspaces.
"$mainMod, B, togglespecialworkspace, btop"
"$mainMod, V, togglespecialworkspace, pipewire" "$mainMod, V, togglespecialworkspace, pipewire"
"$mainMod, N, togglespecialworkspace, nixos" "$mainMod, N, togglespecialworkspace, nixos"
"$mainMod, X, togglespecialworkspace, keepassxc" "$mainMod, X, togglespecialworkspace, keepassxc"
@ -350,14 +348,12 @@ in {
exec = [ exec = [
# kill (almost) everything on special workspaces # kill (almost) everything on special workspaces
"${pkgs.procps}/bin/pkill btop"
"${pkgs.procps}/bin/pkill pavucontrol" "${pkgs.procps}/bin/pkill pavucontrol"
# and run it all again "${pkgs.procps}/bin/pkill helvum"
"[workspace special:btop silent;tile] ${foot}/bin/foot -e ${pkgs.btop}/bin/btop"
# "[workspace special:pipewire silent;tile] ${pkgs.helvum}/bin/helvum" # and run it all again
"[workspace special:pipewire silent;tile] ${pkgs.helvum}/bin/helvum"
"[workspace special:pipewire;silent;tile] ${pkgs.pavucontrol}/bin/pavucontrol" "[workspace special:pipewire;silent;tile] ${pkgs.pavucontrol}/bin/pavucontrol"
# "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator"
]; ];
plugin = { plugin = {
split-monitor-workspaces = { split-monitor-workspaces = {

View file

@ -13,6 +13,14 @@
powerManagement.enable = false; powerManagement.enable = false;
powerManagement.finegrained = false; powerManagement.finegrained = false;
nvidiaSettings = false; nvidiaSettings = false;
package = config.boot.kernelPackages.nvidiaPackages.beta; # package = config.boot.kernelPackages.nvidiaPackages.beta;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "560.28.03";
sha256_64bit = "sha256-martv18vngYBJw1IFUCAaYr+uc65KtlHAMdLMdtQJ+Y=";
sha256_aarch64 = "sha256-+u0ZolZcZoej4nqPGmZn5qpyynLvu2QSm9Rd3wLdDmM=";
openSha256 = "sha256-asGpqOpU0tIO9QqceA8XRn5L27OiBFuI9RZ1NjSVwaM=";
settingsSha256 = "sha256-b4nhUMCzZc3VANnNb0rmcEH6H7SK2D5eZIplgPV59c8=";
persistencedSha256 = "sha256-MhITuC8tH/IPhCOUm60SrPOldOpitk78mH0rg+egkTE=";
};
}; };
} }

View file

@ -4,10 +4,13 @@
... ...
}: let }: let
inherit (config.modules.other.system) username; inherit (config.modules.other.system) username;
inherit (lib) mkForce;
in { in {
networking = { networking = {
enableIPv6 = true;
networkmanager = { networkmanager = {
enable = true; enable = true;
plugins = mkForce []; # Bloated as hell, plugins be gone
dns = "systemd-resolved"; dns = "systemd-resolved";
}; };
}; };