format with alejandra

This commit is contained in:
Sean Kovacs 2025-12-24 11:29:41 -05:00
commit 28043aded9
Signed by: sckova
GPG key ID: 00F325187C68651A
35 changed files with 578 additions and 589 deletions

View file

@ -57,8 +57,7 @@
}; };
}; };
outputs = outputs = {
{
nixpkgs, nixpkgs,
nix-cachyos-kernel, nix-cachyos-kernel,
catppuccin, catppuccin,
@ -72,22 +71,22 @@
nixvim, nixvim,
apple-silicon, apple-silicon,
... ...
}: }: let
let mkNixosSystem = {
mkNixosSystem =
{
hostname, hostname,
system, system,
extraModules ? [ ], extraModules ? [],
extraSpecialArgs ? { }, extraSpecialArgs ? {},
}: }:
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { specialArgs =
{
inherit catppuccin; inherit catppuccin;
} }
// extraSpecialArgs; // extraSpecialArgs;
modules = [ modules =
[
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
catppuccin-palette.overlays.default catppuccin-palette.overlays.default
@ -122,8 +121,7 @@
++ extraModules; ++ extraModules;
}; };
mkHomeConfig = mkHomeConfig = {
{
user, user,
hostname, hostname,
system, system,
@ -145,15 +143,14 @@
nixvim.homeModules.nixvim nixvim.homeModules.nixvim
]; ];
}; };
in in {
{
nixosConfigurations = { nixosConfigurations = {
peach = mkNixosSystem { peach = mkNixosSystem {
hostname = "peach"; hostname = "peach";
system = "aarch64-linux"; system = "aarch64-linux";
extraModules = [ extraModules = [
apple-silicon.nixosModules.default apple-silicon.nixosModules.default
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; } {nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];}
]; ];
}; };

View file

@ -7,9 +7,7 @@
pkgs, pkgs,
modulesPath, modulesPath,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
@ -21,13 +19,13 @@
"usbhid" "usbhid"
"sd_mod" "sd_mod"
]; ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ boot.kernelModules = [
"v4l2loopback" "v4l2loopback"
"snd-aloop" "snd-aloop"
"kvm-intel" "kvm-intel"
]; ];
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback.out ]; boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming # exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams # card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
@ -38,7 +36,7 @@
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/d83ec136-df01-4b9e-a523-6d75726fb904"; device = "/dev/disk/by-uuid/d83ec136-df01-4b9e-a523-6d75726fb904";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@" ]; options = ["subvol=@"];
}; };
fileSystems."/nix" = { fileSystems."/nix" = {
@ -61,7 +59,7 @@
}; };
swapDevices = [ swapDevices = [
{ device = "/dev/disk/by-uuid/056af100-9382-4cbd-b3d5-90df7da69585"; } {device = "/dev/disk/by-uuid/056af100-9382-4cbd-b3d5-90df7da69585";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -7,20 +7,18 @@
pkgs, pkgs,
modulesPath, modulesPath,
... ...
}: }: {
{
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "sdhci_pci" ]; boot.initrd.availableKernelModules = ["sdhci_pci"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ boot.kernelModules = [
"v4l2loopback" "v4l2loopback"
"snd-aloop" "snd-aloop"
]; ];
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback.out ]; boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming # exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams # card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
@ -42,7 +40,7 @@
]; ];
}; };
swapDevices = [ ]; swapDevices = [];
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
} }

View file

@ -1,15 +1,19 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = [ ]; config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [];
boot.initrd.availableKernelModules = [ "ehci_pci" "xhci_pci" "usbhid" "sr_mod" ]; boot.initrd.availableKernelModules = ["ehci_pci" "xhci_pci" "usbhid" "sr_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ ]; boot.kernelModules = [];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-label/nixos"; device = "/dev/disk/by-label/nixos";
@ -19,14 +23,14 @@
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-label/boot"; device = "/dev/disk/by-label/boot";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = [ swapDevices = [
{ device = "/dev/disk/by-label/swap"; } {device = "/dev/disk/by-label/swap";}
]; ];
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
hardware.parallels.enable = true; hardware.parallels.enable = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "prl-tools" ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["prl-tools"];
} }

View file

@ -4,9 +4,7 @@
lib, lib,
types, types,
... ...
}: }: {
{
options = { options = {
catppuccinUpper = { catppuccinUpper = {
accent = lib.mkOption { accent = lib.mkOption {
@ -108,11 +106,9 @@
default = pkgs.noto-fonts-color-emoji; default = pkgs.noto-fonts-color-emoji;
}; };
}; };
cursor = cursor = let
let
attrName = config.catppuccin.flavor + config.catppuccinUpper.accent; attrName = config.catppuccin.flavor + config.catppuccinUpper.accent;
in in {
{
name = lib.mkOption { name = lib.mkOption {
type = lib.types.str; type = lib.types.str;
readOnly = true; readOnly = true;
@ -173,7 +169,7 @@
# gui applications # gui applications
input-leap input-leap
libreoffice-qt-fresh libreoffice-qt-fresh
nur.repos.forkprince.helium-nightly # nur.repos.forkprince.helium-nightly
bitwarden-desktop bitwarden-desktop
qbittorrent qbittorrent
@ -234,15 +230,24 @@
gtk = { gtk = {
enable = true; enable = true;
colorScheme = if config.userOptions.isDark then "dark" else "light"; colorScheme =
if config.userOptions.isDark
then "dark"
else "light";
theme = { theme = {
package = pkgs.kdePackages.breeze-gtk; package = pkgs.kdePackages.breeze-gtk;
name = if config.userOptions.isDark then "Breeze-Dark" else "Breeze"; name =
if config.userOptions.isDark
then "Breeze-Dark"
else "Breeze";
}; };
iconTheme = { iconTheme = {
name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light"; name =
if config.userOptions.isDark
then "Colloid-Dark"
else "Colloid-Light";
package = pkgs.colloid-icon-theme; package = pkgs.colloid-icon-theme;
}; };
@ -286,13 +291,11 @@
fixed = "\"${config.userOptions.fontMono.name},${toString config.userOptions.fontMono.size}\""; fixed = "\"${config.userOptions.fontMono.name},${toString config.userOptions.fontMono.size}\"";
general = "\"${config.userOptions.fontSans.name},${toString config.userOptions.fontSans.size}\""; general = "\"${config.userOptions.fontSans.name},${toString config.userOptions.fontSans.size}\"";
}; };
ColorScheme = ColorScheme = let
let
c = pkgs.catppuccin.bare.${config.catppuccin.flavor}; c = pkgs.catppuccin.bare.${config.catppuccin.flavor};
accent = c.${config.catppuccin.accent}; accent = c.${config.catppuccin.accent};
mkColors = roles: builtins.concatStringsSep ", " (map (r: "#ff${r}") roles); mkColors = roles: builtins.concatStringsSep ", " (map (r: "#ff${r}") roles);
in in {
{
active_colors = mkColors [ active_colors = mkColors [
c.text c.text
c.surface0 c.surface0

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
(prismlauncher.override { (prismlauncher.override {
jdks = [ jdks = [

View file

@ -1,5 +1,7 @@
{ config, pkgs, ... }:
{ {
home.packages = with pkgs; [ openmw ]; config,
pkgs,
...
}: {
home.packages = with pkgs; [openmw];
} }

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }: {
config,
let pkgs,
...
}: let
catppuccin-discord-src = pkgs.fetchFromGitHub { catppuccin-discord-src = pkgs.fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "discord"; repo = "discord";
@ -52,7 +54,7 @@ let
catppuccin-discord = "${catppuccin-discord-pkg}/dist/catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}.theme.css"; catppuccin-discord = "${catppuccin-discord-pkg}/dist/catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}.theme.css";
mergedThemes = pkgs.runCommand "mergedConfig" { } '' mergedThemes = pkgs.runCommand "mergedConfig" {} ''
mkdir -p $out mkdir -p $out
cp ${catppuccin-discord} $out/catppuccin.css cp ${catppuccin-discord} $out/catppuccin.css
''; '';
@ -79,9 +81,8 @@ let
height = 1071; height = 1071;
}; };
}; };
in in {
{ home.packages = with pkgs; [vesktop];
home.packages = with pkgs; [ vesktop ];
home.file.".config/vesktop/settings.json" = { home.file.".config/vesktop/settings.json" = {
text = builtins.toJSON vesktopSettings; text = builtins.toJSON vesktopSettings;

View file

@ -2,9 +2,9 @@
autoUpdate = true; autoUpdate = true;
autoUpdateNotification = true; autoUpdateNotification = true;
useQuickCss = true; useQuickCss = true;
themeLinks = [ ]; themeLinks = [];
eagerPatches = false; eagerPatches = false;
enabledThemes = [ "catppuccin.css" ]; enabledThemes = ["catppuccin.css"];
enableReactDevtools = false; enableReactDevtools = false;
frameless = false; frameless = false;
transparent = true; transparent = true;
@ -330,8 +330,8 @@
ImageFilename.enabled = false; ImageFilename.enabled = false;
}; };
uiElements = { uiElements = {
chatBarButtons = { }; chatBarButtons = {};
messagePopoverButtons = { }; messagePopoverButtons = {};
}; };
notifications = { notifications = {
timeout = 5000; timeout = 5000;

View file

@ -5,9 +5,7 @@
config, config,
lib, lib,
... ...
}: }: {
{
home.file.".mozilla/firefox/default/chrome/theme" = { home.file.".mozilla/firefox/default/chrome/theme" = {
source = ./chrome/theme; source = ./chrome/theme;
force = true; force = true;

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }: {
config,
let pkgs,
...
}: let
catppuccin-mpv = pkgs.fetchFromGitHub { catppuccin-mpv = pkgs.fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "mpv"; repo = "mpv";
@ -8,14 +10,13 @@ let
sha256 = "sha256-oUheJNWk2R6gNEmkK8H6PWX0iofx2KMGDoFWtnr420A="; sha256 = "sha256-oUheJNWk2R6gNEmkK8H6PWX0iofx2KMGDoFWtnr420A=";
}; };
mergedConfig = pkgs.runCommand "mergedConfig" { } '' mergedConfig = pkgs.runCommand "mergedConfig" {} ''
mkdir -p $out mkdir -p $out
${pkgs.gnused}/bin/sed 's/#1e1e2e/#000000/g' \ ${pkgs.gnused}/bin/sed 's/#1e1e2e/#000000/g' \
${catppuccin-mpv}/themes/${config.catppuccin.flavor}/${config.catppuccin.accent}.conf \ ${catppuccin-mpv}/themes/${config.catppuccin.flavor}/${config.catppuccin.accent}.conf \
> $out/mpv.conf > $out/mpv.conf
''; '';
in in {
{
home.packages = with pkgs; [ home.packages = with pkgs; [
(mpv.override { (mpv.override {
scripts = with mpvScripts; [ scripts = with mpvScripts; [

View file

@ -3,16 +3,13 @@
pkgs, pkgs,
spicetify-nix, spicetify-nix,
... ...
}: }: {
{
catppuccin = { catppuccin = {
accent = "blue"; accent = "blue";
flavor = "mocha"; flavor = "mocha";
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
# steam gtk theming # steam gtk theming
adwsteamgtk adwsteamgtk
@ -36,11 +33,9 @@
scale = 1.75; scale = 1.75;
}; };
programs.spicetify = programs.spicetify = let
let
spicePkgs = spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; spicePkgs = spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in in {
{
enable = true; enable = true;
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [

View file

@ -1,13 +1,14 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
catppuccin = { catppuccin = {
accent = "peach"; accent = "peach";
flavor = "mocha"; flavor = "mocha";
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
asahi-nvram asahi-nvram
asahi-bless asahi-bless
asahi-btsync asahi-btsync
@ -44,7 +45,7 @@
shortcuts = { shortcuts = {
# this is really annoying on asahi laptops # this is really annoying on asahi laptops
org_kde_powerdevil.Sleep = [ ]; org_kde_powerdevil.Sleep = [];
}; };
panels = [ panels = [
@ -60,7 +61,7 @@
activeTaskSource = "activeTask"; activeTaskSource = "activeTask";
}; };
layout = { layout = {
elements = [ "windowTitle" ]; elements = ["windowTitle"];
horizontalAlignment = "right"; horizontalAlignment = "right";
showDisabledElements = "deactivated"; showDisabledElements = "deactivated";
verticalAlignment = "center"; verticalAlignment = "center";

View file

@ -1,12 +1,14 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
catppuccin = { catppuccin = {
accent = "green"; accent = "green";
flavor = "mocha"; flavor = "mocha";
}; };
home.packages = with pkgs; [ ]; home.packages = with pkgs; [];
programs.plasma = { programs.plasma = {
panels = [ panels = [
@ -22,7 +24,7 @@
activeTaskSource = "activeTask"; activeTaskSource = "activeTask";
}; };
layout = { layout = {
elements = [ "windowTitle" ]; elements = ["windowTitle"];
horizontalAlignment = "right"; horizontalAlignment = "right";
showDisabledElements = "deactivated"; showDisabledElements = "deactivated";
verticalAlignment = "center"; verticalAlignment = "center";

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.ghostwriter = { programs.ghostwriter = {
enable = true; enable = true;
font = { font = {
@ -50,7 +52,7 @@
value = ""; value = "";
type = "substring"; type = "substring";
}; };
window-types = [ "normal" ]; window-types = ["normal"];
}; };
apply = { apply = {
opacityactive = { opacityactive = {
@ -70,7 +72,7 @@
value = "openmw"; value = "openmw";
type = "substring"; type = "substring";
}; };
window-types = [ "normal" ]; window-types = ["normal"];
}; };
apply = { apply = {
noborder = { noborder = {
@ -98,7 +100,7 @@
value = "Minecraft*"; value = "Minecraft*";
type = "substring"; type = "substring";
}; };
window-types = [ "normal" ]; window-types = ["normal"];
}; };
apply = { apply = {
noborder = { noborder = {
@ -149,7 +151,7 @@
value = "steamwebhelper"; value = "steamwebhelper";
type = "substring"; type = "substring";
}; };
window-types = [ "normal" ]; window-types = ["normal"];
}; };
apply = { apply = {
desktopfile = { desktopfile = {

View file

@ -3,9 +3,7 @@
pkgs, pkgs,
lib, lib,
... ...
}: }: {
{
systemd.user.sessionVariables = { systemd.user.sessionVariables = {
XCURSOR_THEME = config.userOptions.cursor.name; XCURSOR_THEME = config.userOptions.cursor.name;
XCURSOR_SIZE = toString config.userOptions.cursor.size; XCURSOR_SIZE = toString config.userOptions.cursor.size;
@ -27,8 +25,8 @@
systemd.user.services.synology-mount = { systemd.user.services.synology-mount = {
Unit = { Unit = {
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"];
}; };
Service = { Service = {
@ -63,7 +61,7 @@
}; };
Install = { Install = {
WantedBy = [ "default.target" ]; WantedBy = ["default.target"];
}; };
}; };

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }: {
config,
let pkgs,
...
}: let
catppuccin-btop = pkgs.fetchFromGitHub { catppuccin-btop = pkgs.fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "btop"; repo = "btop";
@ -8,15 +10,14 @@ let
sha256 = "sha256-mEGZwScVPWGu+Vbtddc/sJ+mNdD2kKienGZVUcTSl+c="; sha256 = "sha256-mEGZwScVPWGu+Vbtddc/sJ+mNdD2kKienGZVUcTSl+c=";
}; };
mergedConfig = pkgs.runCommand "mergedConfig" { } '' mergedConfig = pkgs.runCommand "mergedConfig" {} ''
mkdir -p $out/themes mkdir -p $out/themes
${pkgs.gnused}/bin/sed 's/blankFlavor/${config.catppuccin.flavor}/g' \ ${pkgs.gnused}/bin/sed 's/blankFlavor/${config.catppuccin.flavor}/g' \
${./btop.conf} > $out/btop.conf ${./btop.conf} > $out/btop.conf
cp ${catppuccin-btop}/themes/catppuccin_latte.theme $out/themes/ cp ${catppuccin-btop}/themes/catppuccin_latte.theme $out/themes/
cp ${catppuccin-btop}/themes/catppuccin_${config.catppuccin.flavor}.theme $out/themes/ cp ${catppuccin-btop}/themes/catppuccin_${config.catppuccin.flavor}.theme $out/themes/
''; '';
in in {
{
home.file.".config/btop" = { home.file.".config/btop" = {
source = mergedConfig; source = mergedConfig;
recursive = true; recursive = true;

View file

@ -1,6 +1,9 @@
{ config, pkgs, ... }:
{ {
home.packages = with pkgs; [ kdePackages.qttools ]; config,
pkgs,
...
}: {
home.packages = with pkgs; [kdePackages.qttools];
programs.fish = { programs.fish = {
enable = true; enable = true;

View file

@ -3,9 +3,7 @@
lib, lib,
pkgs, pkgs,
... ...
}: }: let
let
catppuccin-kitty = pkgs.fetchFromGitHub { catppuccin-kitty = pkgs.fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "kitty"; repo = "kitty";
@ -13,15 +11,14 @@ let
sha256 = "sha256-59ON7CzVgfZUo7F81qQZQ1r6kpcjR3OPvTl99gzDP8E="; sha256 = "sha256-59ON7CzVgfZUo7F81qQZQ1r6kpcjR3OPvTl99gzDP8E=";
}; };
mergedConfig = pkgs.runCommand "mergedConfig" { } '' mergedConfig = pkgs.runCommand "mergedConfig" {} ''
mkdir -p $out mkdir -p $out
${pkgs.gnused}/bin/sed 's/#cba6f7/${ ${pkgs.gnused}/bin/sed 's/#cba6f7/${
pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent} pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}
}/g' ${catppuccin-kitty}/themes/${config.catppuccin.flavor}.conf > \ }/g' ${catppuccin-kitty}/themes/${config.catppuccin.flavor}.conf > \
$out/${config.catppuccinUpper.flavor}${config.catppuccinUpper.accent}.conf $out/${config.catppuccinUpper.flavor}${config.catppuccinUpper.accent}.conf
''; '';
in in {
{
home.file.".config/kitty/themes" = { home.file.".config/kitty/themes" = {
source = mergedConfig; source = mergedConfig;
recursive = true; recursive = true;

View file

@ -1,6 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
}; };
@ -9,7 +11,7 @@
kdePackages.qtdeclarative kdePackages.qtdeclarative
prettier prettier
prettierd prettierd
nixfmt-rfc-style alejandra
stylua stylua
black black
]; ];
@ -94,13 +96,13 @@
autoLoad = true; autoLoad = true;
settings = { settings = {
formatters_by_ft = { formatters_by_ft = {
lua = [ "stylua" ]; lua = ["stylua"];
python = [ "black" ]; python = ["black"];
nix = [ "nixfmt" ]; nix = ["alejandra"];
javascript = [ "prettier" ]; javascript = ["prettier"];
css = [ "prettier" ]; css = ["prettier"];
json = [ "prettier" ]; json = ["prettier"];
jsonc = [ "prettier" ]; jsonc = ["prettier"];
}; };
# Default formatting options # Default formatting options
@ -216,8 +218,8 @@
"filename" "filename"
"branch" "branch"
]; ];
lualine_c = [ "%=" ]; lualine_c = ["%="];
lualine_x = [ ]; lualine_x = [];
lualine_y = [ lualine_y = [
"filetype" "filetype"
"progress" "progress"
@ -234,15 +236,15 @@
}; };
inactive_sections = { inactive_sections = {
lualine_a = [ "filename" ]; lualine_a = ["filename"];
lualine_b = [ ]; lualine_b = [];
lualine_c = [ ]; lualine_c = [];
lualine_x = [ ]; lualine_x = [];
lualine_y = [ ]; lualine_y = [];
lualine_z = [ "location" ]; lualine_z = ["location"];
}; };
tabline = { }; tabline = {};
extensions = [ ]; extensions = [];
}; };
autoLoad = true; autoLoad = true;
}; };

View file

@ -1,14 +1,15 @@
{ config, pkgs, ... }: {
config,
let pkgs,
...
}: let
catppuccin-fuzzel = pkgs.fetchFromGitHub { catppuccin-fuzzel = pkgs.fetchFromGitHub {
owner = "catppuccin"; owner = "catppuccin";
repo = "fuzzel"; repo = "fuzzel";
rev = "0af0e26901b60ada4b20522df739f032797b07c3"; rev = "0af0e26901b60ada4b20522df739f032797b07c3";
sha256 = "sha256-XpItMGsYq4XvLT+7OJ9YRILfd/9RG1GMuO6J4hSGepg="; sha256 = "sha256-XpItMGsYq4XvLT+7OJ9YRILfd/9RG1GMuO6J4hSGepg=";
}; };
in in {
{
imports = [ imports = [
./niri.nix ./niri.nix
./noctalia.nix ./noctalia.nix

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.niri.package = pkgs.niri-unstable.overrideAttrs (old: { programs.niri.package = pkgs.niri-unstable.overrideAttrs (old: {
doCheck = false; doCheck = false;
}); });
@ -10,7 +12,7 @@
hotkey-overlay.skip-at-startup = true; hotkey-overlay.skip-at-startup = true;
prefer-no-csd = true; prefer-no-csd = true;
gestures.hot-corners.enable = false; gestures.hot-corners.enable = false;
spawn-at-startup = [ ]; # systemd is based sorry spawn-at-startup = []; # systemd is based sorry
overview = { overview = {
backdrop-color = pkgs.catppuccin.${config.catppuccin.flavor}.crust; backdrop-color = pkgs.catppuccin.${config.catppuccin.flavor}.crust;
workspace-shadow.enable = false; workspace-shadow.enable = false;
@ -66,9 +68,9 @@
proportion = 0.5; proportion = 0.5;
}; };
preset-column-widths = [ preset-column-widths = [
{ proportion = 1.0 / 3.0; } {proportion = 1.0 / 3.0;}
{ proportion = 1.0 / 2.0; } {proportion = 1.0 / 2.0;}
{ proportion = 2.0 / 3.0; } {proportion = 2.0 / 3.0;}
]; ];
border = { border = {
enable = true; enable = true;
@ -135,10 +137,10 @@
} }
]; ];
binds = { binds = {
"Mod+Shift+Slash".action.show-hotkey-overlay = { }; "Mod+Shift+Slash".action.show-hotkey-overlay = {};
"Mod+T" = { "Mod+T" = {
action.spawn = [ "kitty" ]; action.spawn = ["kitty"];
hotkey-overlay.title = "Open a Terminal: kitty"; hotkey-overlay.title = "Open a Terminal: kitty";
}; };
"Mod+Space" = { "Mod+Space" = {
@ -229,96 +231,96 @@
}; };
"Mod+O" = { "Mod+O" = {
action.toggle-overview = { }; action.toggle-overview = {};
repeat = false; repeat = false;
}; };
"Mod+Q" = { "Mod+Q" = {
action.close-window = { }; action.close-window = {};
repeat = false; repeat = false;
}; };
"Mod+Left".action.focus-column-left = { }; "Mod+Left".action.focus-column-left = {};
"Mod+Down".action.focus-window-down = { }; "Mod+Down".action.focus-window-down = {};
"Mod+Up".action.focus-window-up = { }; "Mod+Up".action.focus-window-up = {};
"Mod+Right".action.focus-column-right = { }; "Mod+Right".action.focus-column-right = {};
"Mod+H".action.focus-column-left = { }; "Mod+H".action.focus-column-left = {};
"Mod+J".action.focus-window-down = { }; "Mod+J".action.focus-window-down = {};
"Mod+K".action.focus-window-up = { }; "Mod+K".action.focus-window-up = {};
"Mod+L".action.focus-column-right = { }; "Mod+L".action.focus-column-right = {};
"Mod+Ctrl+Left".action.move-column-left = { }; "Mod+Ctrl+Left".action.move-column-left = {};
"Mod+Ctrl+Down".action.move-window-down = { }; "Mod+Ctrl+Down".action.move-window-down = {};
"Mod+Ctrl+Up".action.move-window-up = { }; "Mod+Ctrl+Up".action.move-window-up = {};
"Mod+Ctrl+Right".action.move-column-right = { }; "Mod+Ctrl+Right".action.move-column-right = {};
"Mod+Ctrl+H".action.move-column-left = { }; "Mod+Ctrl+H".action.move-column-left = {};
"Mod+Ctrl+J".action.move-window-down = { }; "Mod+Ctrl+J".action.move-window-down = {};
"Mod+Ctrl+K".action.move-window-up = { }; "Mod+Ctrl+K".action.move-window-up = {};
"Mod+Ctrl+L".action.move-column-right = { }; "Mod+Ctrl+L".action.move-column-right = {};
"Mod+Home".action.focus-column-first = { }; "Mod+Home".action.focus-column-first = {};
"Mod+End".action.focus-column-last = { }; "Mod+End".action.focus-column-last = {};
"Mod+Ctrl+Home".action.move-column-to-first = { }; "Mod+Ctrl+Home".action.move-column-to-first = {};
"Mod+Ctrl+End".action.move-column-to-last = { }; "Mod+Ctrl+End".action.move-column-to-last = {};
"Mod+Shift+Left".action.focus-monitor-left = { }; "Mod+Shift+Left".action.focus-monitor-left = {};
"Mod+Shift+Down".action.focus-monitor-down = { }; "Mod+Shift+Down".action.focus-monitor-down = {};
"Mod+Shift+Up".action.focus-monitor-up = { }; "Mod+Shift+Up".action.focus-monitor-up = {};
"Mod+Shift+Right".action.focus-monitor-right = { }; "Mod+Shift+Right".action.focus-monitor-right = {};
"Mod+Shift+H".action.focus-monitor-left = { }; "Mod+Shift+H".action.focus-monitor-left = {};
"Mod+Shift+J".action.focus-monitor-down = { }; "Mod+Shift+J".action.focus-monitor-down = {};
"Mod+Shift+K".action.focus-monitor-up = { }; "Mod+Shift+K".action.focus-monitor-up = {};
"Mod+Shift+L".action.focus-monitor-right = { }; "Mod+Shift+L".action.focus-monitor-right = {};
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { }; "Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = {};
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { }; "Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = {};
"Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = { }; "Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = {};
"Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = { }; "Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = {};
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = { }; "Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = {};
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = { }; "Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = {};
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = { }; "Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = {};
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = { }; "Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = {};
"Mod+Page_Down".action.focus-workspace-down = { }; "Mod+Page_Down".action.focus-workspace-down = {};
"Mod+Page_Up".action.focus-workspace-up = { }; "Mod+Page_Up".action.focus-workspace-up = {};
"Mod+U".action.focus-workspace-down = { }; "Mod+U".action.focus-workspace-down = {};
"Mod+I".action.focus-workspace-up = { }; "Mod+I".action.focus-workspace-up = {};
"Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = { }; "Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = {};
"Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = { }; "Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = {};
"Mod+Ctrl+U".action.move-column-to-workspace-down = { }; "Mod+Ctrl+U".action.move-column-to-workspace-down = {};
"Mod+Ctrl+I".action.move-column-to-workspace-up = { }; "Mod+Ctrl+I".action.move-column-to-workspace-up = {};
"Mod+Shift+Page_Down".action.move-workspace-down = { }; "Mod+Shift+Page_Down".action.move-workspace-down = {};
"Mod+Shift+Page_Up".action.move-workspace-up = { }; "Mod+Shift+Page_Up".action.move-workspace-up = {};
"Mod+Shift+U".action.move-workspace-down = { }; "Mod+Shift+U".action.move-workspace-down = {};
"Mod+Shift+I".action.move-workspace-up = { }; "Mod+Shift+I".action.move-workspace-up = {};
"Mod+WheelScrollDown" = { "Mod+WheelScrollDown" = {
action.focus-workspace-down = { }; action.focus-workspace-down = {};
cooldown-ms = 150; cooldown-ms = 150;
}; };
"Mod+WheelScrollUp" = { "Mod+WheelScrollUp" = {
action.focus-workspace-up = { }; action.focus-workspace-up = {};
cooldown-ms = 150; cooldown-ms = 150;
}; };
"Mod+Ctrl+WheelScrollDown" = { "Mod+Ctrl+WheelScrollDown" = {
action.move-column-to-workspace-down = { }; action.move-column-to-workspace-down = {};
cooldown-ms = 150; cooldown-ms = 150;
}; };
"Mod+Ctrl+WheelScrollUp" = { "Mod+Ctrl+WheelScrollUp" = {
action.move-column-to-workspace-up = { }; action.move-column-to-workspace-up = {};
cooldown-ms = 150; cooldown-ms = 150;
}; };
"Mod+WheelScrollRight".action.focus-column-right = { }; "Mod+WheelScrollRight".action.focus-column-right = {};
"Mod+WheelScrollLeft".action.focus-column-left = { }; "Mod+WheelScrollLeft".action.focus-column-left = {};
"Mod+Ctrl+WheelScrollRight".action.move-column-right = { }; "Mod+Ctrl+WheelScrollRight".action.move-column-right = {};
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = { }; "Mod+Ctrl+WheelScrollLeft".action.move-column-left = {};
"Mod+Shift+WheelScrollDown".action.focus-column-right = { }; "Mod+Shift+WheelScrollDown".action.focus-column-right = {};
"Mod+Shift+WheelScrollUp".action.focus-column-left = { }; "Mod+Shift+WheelScrollUp".action.focus-column-left = {};
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = { }; "Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = {};
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = { }; "Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = {};
"Mod+1".action.focus-workspace = 1; "Mod+1".action.focus-workspace = 1;
"Mod+2".action.focus-workspace = 2; "Mod+2".action.focus-workspace = 2;
@ -339,23 +341,23 @@
"Mod+Ctrl+8".action.move-column-to-workspace = 8; "Mod+Ctrl+8".action.move-column-to-workspace = 8;
"Mod+Ctrl+9".action.move-column-to-workspace = 9; "Mod+Ctrl+9".action.move-column-to-workspace = 9;
"Mod+BracketLeft".action.consume-or-expel-window-left = { }; "Mod+BracketLeft".action.consume-or-expel-window-left = {};
"Mod+BracketRight".action.consume-or-expel-window-right = { }; "Mod+BracketRight".action.consume-or-expel-window-right = {};
"Mod+Comma".action.consume-window-into-column = { }; "Mod+Comma".action.consume-window-into-column = {};
"Mod+Period".action.expel-window-from-column = { }; "Mod+Period".action.expel-window-from-column = {};
"Mod+R".action.switch-preset-column-width = { }; "Mod+R".action.switch-preset-column-width = {};
"Mod+Shift+R".action.switch-preset-window-height = { }; "Mod+Shift+R".action.switch-preset-window-height = {};
"Mod+Ctrl+R".action.reset-window-height = { }; "Mod+Ctrl+R".action.reset-window-height = {};
"Mod+F".action.maximize-column = { }; "Mod+F".action.maximize-column = {};
"Mod+Shift+F".action.fullscreen-window = { }; "Mod+Shift+F".action.fullscreen-window = {};
"Mod+Ctrl+F".action.expand-column-to-available-width = { }; "Mod+Ctrl+F".action.expand-column-to-available-width = {};
"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%";
@ -363,26 +365,26 @@
"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+V".action.toggle-window-floating = { }; "Mod+V".action.toggle-window-floating = {};
"Mod+Shift+V".action.switch-focus-between-floating-and-tiling = { }; "Mod+Shift+V".action.switch-focus-between-floating-and-tiling = {};
"Mod+W".action.toggle-column-tabbed-display = { }; "Mod+W".action.toggle-column-tabbed-display = {};
"Print".action.screenshot = { }; "Print".action.screenshot = {};
"Mod+Shift+S".action.screenshot = { }; "Mod+Shift+S".action.screenshot = {};
"Ctrl+Print".action.screenshot-screen = { }; "Ctrl+Print".action.screenshot-screen = {};
"Alt+Print".action.screenshot-window = { }; "Alt+Print".action.screenshot-window = {};
"Mod+Escape" = { "Mod+Escape" = {
action.toggle-keyboard-shortcuts-inhibit = { }; action.toggle-keyboard-shortcuts-inhibit = {};
allow-inhibiting = false; allow-inhibiting = false;
}; };
"Mod+Shift+E".action.quit = { }; "Mod+Shift+E".action.quit = {};
"Ctrl+Alt+Delete".action.quit = { }; "Ctrl+Alt+Delete".action.quit = {};
"Mod+Shift+P" = { "Mod+Shift+P" = {
action.power-off-monitors = { }; action.power-off-monitors = {};
hotkey-overlay.title = "Turn off the display"; hotkey-overlay.title = "Turn off the display";
}; };
}; };

View file

@ -3,9 +3,7 @@
config, config,
lib, lib,
... ...
}: }: let
let
# Get the actual color palettes # Get the actual color palettes
darkPalette = pkgs.catppuccin.${config.catppuccin.flavor}; darkPalette = pkgs.catppuccin.${config.catppuccin.flavor};
lightPalette = pkgs.catppuccin.latte; lightPalette = pkgs.catppuccin.latte;
@ -44,9 +42,11 @@ let
customPackage = pkgs.noctalia-shell.overrideAttrs (oldAttrs: { customPackage = pkgs.noctalia-shell.overrideAttrs (oldAttrs: {
pname = "noctalia-shell-custom"; pname = "noctalia-shell-custom";
nativeBuildInputs = (oldAttrs.nativeBuildInputs or [ ]) ++ [ pkgs.jq ]; nativeBuildInputs = (oldAttrs.nativeBuildInputs or []) ++ [pkgs.jq];
postPatch = (oldAttrs.postPatch or "") + '' postPatch =
(oldAttrs.postPatch or "")
+ ''
echo "Patching noctalia-shell with Cat-Custom theme..." echo "Patching noctalia-shell with Cat-Custom theme..."
echo " Dark: ${config.catppuccin.flavor} / Light: latte" echo " Dark: ${config.catppuccin.flavor} / Light: latte"
echo " Accent: ${config.catppuccin.accent}" echo " Accent: ${config.catppuccin.accent}"
@ -77,12 +77,13 @@ let
fi fi
''; '';
meta = oldAttrs.meta // { meta =
oldAttrs.meta
// {
description = "${oldAttrs.meta.description} (Cat-Custom: ${config.catppuccin.flavor}/${config.catppuccin.accent})"; description = "${oldAttrs.meta.description} (Cat-Custom: ${config.catppuccin.flavor}/${config.catppuccin.accent})";
}; };
}); });
in in {
{
programs.noctalia-shell = { programs.noctalia-shell = {
enable = true; enable = true;
package = customPackage; package = customPackage;
@ -91,7 +92,7 @@ in
bar = { bar = {
position = "top"; position = "top";
backgroundOpacity = 1; backgroundOpacity = 1;
monitors = [ ]; monitors = [];
density = "comfortable"; density = "comfortable";
showCapsule = true; showCapsule = true;
capsuleOpacity = 1; capsuleOpacity = 1;
@ -256,7 +257,7 @@ in
enabled = true; enabled = true;
overviewEnabled = false; overviewEnabled = false;
directory = "/home/sckova/.local/share/wallpaper"; directory = "/home/sckova/.local/share/wallpaper";
monitorDirectories = [ ]; monitorDirectories = [];
enableMultiMonitorDirectories = false; enableMultiMonitorDirectories = false;
recursiveSearch = false; recursiveSearch = false;
setWallpaperOnAllMonitors = true; setWallpaperOnAllMonitors = true;
@ -275,7 +276,7 @@ in
enableClipboardHistory = true; enableClipboardHistory = true;
enableClipPreview = true; enableClipPreview = true;
position = "top_left"; position = "top_left";
pinnedExecs = [ ]; pinnedExecs = [];
useApp2Unit = false; useApp2Unit = false;
sortByMostUsed = true; sortByMostUsed = true;
terminalCommand = "kitty -e"; terminalCommand = "kitty -e";
@ -360,8 +361,8 @@ in
floatingRatio = 1; floatingRatio = 1;
size = 1; size = 1;
onlySameOutput = true; onlySameOutput = true;
monitors = [ ]; monitors = [];
pinnedApps = [ ]; pinnedApps = [];
colorizeIcons = false; colorizeIcons = false;
pinnedStatic = false; pinnedStatic = false;
inactiveIndicators = false; inactiveIndicators = false;
@ -404,7 +405,7 @@ in
}; };
notifications = { notifications = {
enabled = true; enabled = true;
monitors = [ ]; monitors = [];
location = "top_right"; location = "top_right";
overlayLayer = true; overlayLayer = true;
backgroundOpacity = 1; backgroundOpacity = 1;
@ -434,7 +435,7 @@ in
1 1
2 2
]; ];
monitors = [ ]; monitors = [];
}; };
audio = { audio = {
volumeStep = 5; volumeStep = 5;
@ -442,7 +443,7 @@ in
cavaFrameRate = 30; cavaFrameRate = 30;
visualizerType = "linear"; visualizerType = "linear";
visualizerQuality = "high"; visualizerQuality = "high";
mprisBlacklist = [ ]; mprisBlacklist = [];
preferredPlayer = ""; preferredPlayer = "";
externalMixer = "pwvucontrol || pavucontrol"; externalMixer = "pwvucontrol || pavucontrol";
}; };
@ -498,8 +499,8 @@ in
systemd.user.services.noctalia-shell = { systemd.user.services.noctalia-shell = {
Unit = { Unit = {
After = [ "niri.service" ]; After = ["niri.service"];
PartOf = [ "niri.service" ]; PartOf = ["niri.service"];
Description = "Noctalia Shell - Wayland desktop shell"; Description = "Noctalia Shell - Wayland desktop shell";
Documentation = "https://docs.noctalia.dev/docs"; Documentation = "https://docs.noctalia.dev/docs";
}; };
@ -517,7 +518,7 @@ in
}; };
Install = { Install = {
WantedBy = [ "niri.service" ]; WantedBy = ["niri.service"];
}; };
}; };
} }

View file

@ -1,5 +1,8 @@
{ pkgs, config, ... }: {
let pkgs,
config,
...
}: let
bingWallpaperScript = pkgs.writeShellScript "bing-wallpaper" '' bingWallpaperScript = pkgs.writeShellScript "bing-wallpaper" ''
set -euo pipefail set -euo pipefail
@ -59,8 +62,7 @@ let
echo "Wallpaper downloaded and applied successfully." echo "Wallpaper downloaded and applied successfully."
''; '';
in in {
{
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";
@ -81,7 +83,7 @@ in
}; };
Install = { Install = {
WantedBy = [ "niri.service" ]; WantedBy = ["niri.service"];
}; };
}; };
} }

View file

@ -3,14 +3,10 @@
pkgs, pkgs,
lib, lib,
... ...
}: }: let
capitalize = str:
let
capitalize =
str:
(lib.toUpper (builtins.substring 0 1 str)) + (builtins.substring 1 (builtins.stringLength str) str); (lib.toUpper (builtins.substring 0 1 str)) + (builtins.substring 1 (builtins.stringLength str) str);
in in {
{
# home.sessionVariables = { # home.sessionVariables = {
# EDITOR = "code"; # EDITOR = "code";
# }; # };

View file

@ -1,9 +1,8 @@
final: prev: { final: prev: {
widevine-helium = widevine-helium =
if prev.stdenv.hostPlatform.system == "aarch64-linux" then if prev.stdenv.hostPlatform.system == "aarch64-linux"
prev.callPackage ./helium-browser/widevine-aarch64-linux.nix { } then prev.callPackage ./helium-browser/widevine-aarch64-linux.nix {}
else else null;
null;
# helium-browser = # helium-browser =
# prev.callPackage # prev.callPackage
@ -16,7 +15,7 @@ final: prev: {
# }) { }; # }) { };
# }; # };
spotify-webapp = prev.callPackage (builtins.path { path = ./spotify/package.nix; }) { }; spotify-webapp = prev.callPackage (builtins.path {path = ./spotify/package.nix;}) {};
spotifyd = prev.callPackage (builtins.path { path = ./spotifyd/package.nix; }) { }; spotifyd = prev.callPackage (builtins.path {path = ./spotifyd/package.nix;}) {};
} }

View file

@ -5,9 +5,7 @@
copyDesktopItems, copyDesktopItems,
chromium, chromium,
writeShellScriptBin, writeShellScriptBin,
}: }: let
let
pname = "spotify-webapp"; pname = "spotify-webapp";
version = "1.0.0"; version = "1.0.0";
@ -25,15 +23,14 @@ let
--ozone-platform=wayland \ --ozone-platform=wayland \
"$@" "$@"
''; '';
in in
stdenv.mkDerivation { stdenv.mkDerivation {
inherit pname version; inherit pname version;
dontUnpack = true; dontUnpack = true;
dontBuild = true; dontBuild = true;
nativeBuildInputs = [ copyDesktopItems ]; nativeBuildInputs = [copyDesktopItems];
desktopItems = [ desktopItems = [
(makeDesktopItem { (makeDesktopItem {
@ -48,7 +45,7 @@ stdenv.mkDerivation {
"Music" "Music"
"AudioVideo" "AudioVideo"
]; ];
mimeTypes = [ "x-scheme-handler/spotify" ]; mimeTypes = ["x-scheme-handler/spotify"];
startupWMClass = "spotify-webapp"; startupWMClass = "spotify-webapp";
startupNotify = true; startupNotify = true;
}) })
@ -67,8 +64,8 @@ stdenv.mkDerivation {
description = "Spotify web app running in Chromium"; description = "Spotify web app running in Chromium";
homepage = "https://open.spotify.com"; homepage = "https://open.spotify.com";
license = licenses.free; license = licenses.free;
maintainers = [ ]; maintainers = [];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "spotify-webapp"; mainProgram = "spotify-webapp";
}; };
} }

View file

@ -20,7 +20,6 @@
withPortAudio ? stdenv.hostPlatform.isDarwin, withPortAudio ? stdenv.hostPlatform.isDarwin,
withPulseAudio ? config.pulseaudio or stdenv.hostPlatform.isLinux, withPulseAudio ? config.pulseaudio or stdenv.hostPlatform.isLinux,
}: }:
rustPlatform.buildRustPackage (finalAttrs: { rustPlatform.buildRustPackage (finalAttrs: {
pname = "spotifyd"; pname = "spotifyd";
version = "0.4.2"; version = "0.4.2";
@ -41,7 +40,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
]; ];
buildInputs = buildInputs =
lib.optionals stdenv.hostPlatform.isLinux [ openssl ] lib.optionals stdenv.hostPlatform.isLinux [openssl]
# The `dbus_mpris` feature works on other platforms, but only requires `dbus` on Linux # The `dbus_mpris` feature works on other platforms, but only requires `dbus` on Linux
++ lib.optional (withMpris && stdenv.hostPlatform.isLinux) dbus ++ lib.optional (withMpris && stdenv.hostPlatform.isLinux) dbus
++ lib.optional (withALSA || withJack) alsa-lib ++ lib.optional (withALSA || withJack) alsa-lib
@ -50,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
++ lib.optional withPortAudio portaudio; ++ lib.optional withPortAudio portaudio;
# `aws-lc-sys` fails with this enabled # `aws-lc-sys` fails with this enabled
hardeningDisable = [ "strictoverflow" ]; hardeningDisable = ["strictoverflow"];
buildNoDefaultFeatures = true; buildNoDefaultFeatures = true;
buildFeatures = buildFeatures =
@ -68,8 +67,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
]; ];
passthru = { passthru = {
tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; tests.version = testers.testVersion {package = finalAttrs.finalPackage;};
updateScript = nix-update-script { }; updateScript = nix-update-script {};
}; };
meta = { meta = {

View file

@ -1,16 +1,13 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# 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, config,
lib, lib,
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
nix.settings.experimental-features = [ nix.settings.experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
@ -24,7 +21,7 @@
nix.settings = { nix.settings = {
# Increase file descriptor limit for builds # Increase file descriptor limit for builds
sandbox = "relaxed"; sandbox = "relaxed";
extra-sandbox-paths = [ ]; extra-sandbox-paths = [];
build-users-group = "nixbld"; build-users-group = "nixbld";
}; };
@ -79,7 +76,6 @@
}; };
boot = { boot = {
plymouth = { plymouth = {
enable = true; enable = true;
}; };
@ -184,7 +180,7 @@
"networkmanager" "networkmanager"
"podman" "podman"
]; ];
packages = with pkgs; [ ]; packages = with pkgs; [];
hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0"; hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0";
}; };
@ -227,5 +223,4 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }

View file

@ -6,8 +6,7 @@
catppuccin, catppuccin,
nix-cachyos-kernel, nix-cachyos-kernel,
... ...
}: }: {
{
networking.hostName = "alien"; networking.hostName = "alien";
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -16,8 +15,8 @@
]; ];
# enable ddcutil # enable ddcutil
users.users.sckova.extraGroups = [ "i2c" ]; users.users.sckova.extraGroups = ["i2c"];
boot.extraModulePackages = [ config.boot.kernelPackages.ddcci-driver ]; boot.extraModulePackages = [config.boot.kernelPackages.ddcci-driver];
boot.kernelModules = [ boot.kernelModules = [
"i2c-dev" "i2c-dev"
"ddcci_backlight" "ddcci_backlight"
@ -35,14 +34,14 @@
catppuccin.accent = "blue"; catppuccin.accent = "blue";
home-manager.users.sckova = { home-manager.users.sckova = {
imports = [ catppuccin.homeModules.catppuccin ]; imports = [catppuccin.homeModules.catppuccin];
}; };
boot.loader.systemd-boot.consoleMode = "max"; boot.loader.systemd-boot.consoleMode = "max";
# boot.kernelPackages = pkgs.linuxPackages; # boot.kernelPackages = pkgs.linuxPackages;
# let's use the CachyOS kernel instead! # let's use the CachyOS kernel instead!
nixpkgs.overlays = [ nix-cachyos-kernel.overlays.default ]; nixpkgs.overlays = [nix-cachyos-kernel.overlays.default];
nix.settings.substituters = [ nix.settings.substituters = [
"https://attic.xuyh0120.win/lantian" "https://attic.xuyh0120.win/lantian"
"https://cache.garnix.io" "https://cache.garnix.io"

View file

@ -4,8 +4,7 @@
lib, lib,
catppuccin, catppuccin,
... ...
}: }: {
{
networking.hostName = "peach"; networking.hostName = "peach";
boot.binfmt.emulatedSystems = [ boot.binfmt.emulatedSystems = [
@ -13,12 +12,12 @@
"riscv64-linux" "riscv64-linux"
]; ];
boot.kernelParams = [ "apple_dcp.show_notch=1" ]; boot.kernelParams = ["apple_dcp.show_notch=1"];
catppuccin.accent = "peach"; catppuccin.accent = "peach";
home-manager.users.sckova = { home-manager.users.sckova = {
imports = [ catppuccin.homeModules.catppuccin ]; imports = [catppuccin.homeModules.catppuccin];
}; };
hardware.asahi = { hardware.asahi = {

View file

@ -4,8 +4,7 @@
lib, lib,
catppuccin, catppuccin,
... ...
}: }: {
{
networking.hostName = "vm-aarch64"; networking.hostName = "vm-aarch64";
boot.binfmt.emulatedSystems = [ boot.binfmt.emulatedSystems = [
@ -16,7 +15,7 @@
catppuccin.accent = "green"; catppuccin.accent = "green";
home-manager.users.sckova = { home-manager.users.sckova = {
imports = [ catppuccin.homeModules.catppuccin ]; imports = [catppuccin.homeModules.catppuccin];
}; };
services.spice-vdagentd.enable = true; services.spice-vdagentd.enable = true;

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.bash = { programs.bash = {
interactiveShellInit = '' interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]

View file

@ -4,9 +4,7 @@
pkgs, pkgs,
lib, lib,
... ...
}: }: let
let
tailscaleWaitScript = pkgs.writeShellScript "tailscale-wait-for-ip" '' tailscaleWaitScript = pkgs.writeShellScript "tailscale-wait-for-ip" ''
echo "Waiting for tailscale0 to get an IP address..." echo "Waiting for tailscale0 to get an IP address..."
for i in {1..15}; do for i in {1..15}; do
@ -20,8 +18,7 @@ let
echo "Warning: tailscale0 did not get IP address within 15 seconds" echo "Warning: tailscale0 did not get IP address within 15 seconds"
exit 0 exit 0
''; '';
in in {
{
systemd.services.tailscaled = { systemd.services.tailscaled = {
serviceConfig = { serviceConfig = {
ExecStartPost = tailscaleWaitScript; ExecStartPost = tailscaleWaitScript;

View file

@ -3,15 +3,13 @@
lib, lib,
pkgs, pkgs,
... ...
}: }: {
{
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [ nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
(final: prev: { (final: prev: {
wrapFirefox = wrapFirefox = browser: opts: let
browser: opts: extraPrefs =
let (opts.extraPrefs or "")
extraPrefs = (opts.extraPrefs or "") + '' + ''
lockPref("media.gmp-widevinecdm.version", "system-installed"); lockPref("media.gmp-widevinecdm.version", "system-installed");
lockPref("media.gmp-widevinecdm.visible", true); lockPref("media.gmp-widevinecdm.visible", true);
lockPref("media.gmp-widevinecdm.enabled", true); lockPref("media.gmp-widevinecdm.enabled", true);
@ -22,8 +20,10 @@
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm"; widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
widevineOutDir = "$out/gmp-widevinecdm/system-installed"; widevineOutDir = "$out/gmp-widevinecdm/system-installed";
in in
(prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: { (prev.wrapFirefox browser (opts // {inherit extraPrefs;})).overrideAttrs (previousAttrs: {
buildCommand = previousAttrs.buildCommand + '' buildCommand =
previousAttrs.buildCommand
+ ''
mkdir -p "${widevineOutDir}" mkdir -p "${widevineOutDir}"
ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so" ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"
ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json" ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json"