Compare commits

..

3 Commits

Author SHA1 Message Date
cabdf0aeb5 Install walker 2026-03-06 16:56:28 +00:00
5225575a1d Update flake 2026-03-04 23:11:54 +00:00
b579948c87 Install stuff 2026-03-02 00:14:11 +00:00
2 changed files with 696 additions and 360 deletions

203
flake.lock generated
View File

@@ -19,6 +19,25 @@
"type": "github" "type": "github"
} }
}, },
"elephant": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"systems": "systems"
},
"locked": {
"lastModified": 1770910218,
"narHash": "sha256-IyHoHbhLFuIgFG+n7dqHwJaXuNnRaEsxCfAsfudV1KY=",
"owner": "abenz1267",
"repo": "elephant",
"rev": "c354a596ec7a7e34e9c26478dc7ef9680bc23e6d",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "elephant",
"type": "github"
}
},
"firefox-addons": { "firefox-addons": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -41,6 +60,24 @@
"type": "gitlab" "type": "gitlab"
} }
}, },
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -86,7 +123,7 @@
"impermanence": { "impermanence": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1769548169, "lastModified": 1769548169,
@@ -118,13 +155,28 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1771848320, "lastModified": 1761765539,
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1772198003,
"narHash": "sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2fc6539b481e1d2569f25f8799236694180c0993", "rev": "dd9b079222d43e1943b6ebd802f04fd959dc8e61",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -134,6 +186,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": {
"locked": {
"lastModified": 1764242076,
"narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1771848320, "lastModified": 1771848320,
@@ -150,13 +218,136 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1772047000,
"narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1267bb4920d0fc06ea916734c11b0bf004bbe17e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1764557259,
"narHash": "sha256-fhD/QUtJ0HKs3oLvfnD+/SrBV5Y7YEkCYnDjOVUjLys=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0d70460758949966e91d9ecb823b821f963cefbb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"disko": "disko", "disko": "disko",
"elephant": "elephant",
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4",
"nixpkgs-unstable": "nixpkgs-unstable",
"try-cli": "try-cli",
"walker": "walker"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"try-cli": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1770817563,
"narHash": "sha256-REadu3/mf6EHbXofjkYgu/gZ/UBSFOMQ5YhtflwmDNE=",
"owner": "tobi",
"repo": "try-cli",
"rev": "f52328af336f7dfa93396069ebcd7152df399010",
"type": "github"
},
"original": {
"owner": "tobi",
"repo": "try-cli",
"type": "github"
}
},
"walker": {
"inputs": {
"elephant": [
"elephant"
],
"nixpkgs": "nixpkgs_6",
"systems": "systems_2"
},
"locked": {
"lastModified": 1771062828,
"narHash": "sha256-y1jBFFO0u+V21y3YldHZozrDwVJVrdC+o3c4M8/rasU=",
"owner": "abenz1267",
"repo": "walker",
"rev": "19b1104585305e0806b842af341630f72038a4b9",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "walker",
"type": "github"
} }
} }
}, },

853
flake.nix
View File

@@ -2,7 +2,8 @@
description = "Stationette nix config"; description = "Stationette nix config";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
disko.url = "github:nix-community/disko/latest"; disko.url = "github:nix-community/disko/latest";
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
home-manager = { home-manager = {
@@ -13,19 +14,28 @@
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
try-cli.url = "github:tobi/try-cli";
elephant.url = "github:abenz1267/elephant";
walker = {
url = "github:abenz1267/walker";
inputs.elephant.follows = "elephant";
};
}; };
outputs = { outputs = {
self, self,
nixpkgs, nixpkgs,
nixpkgs-unstable,
impermanence, impermanence,
disko, disko,
home-manager, home-manager,
try-cli,
... ...
} @ inputs: let } @ inputs: let
lib = nixpkgs.lib; lib = nixpkgs.lib;
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
in { in {
nixosConfigurations = { nixosConfigurations = {
stationette = nixpkgs.lib.nixosSystem { stationette = nixpkgs.lib.nixosSystem {
@@ -41,42 +51,41 @@
stationette = { stationette = {
type = "disk"; type = "disk";
device = "/dev/sda"; # Check this with lsblk device = "/dev/sda"; # Check this with lsblk
content = { content = {
type = "gpt"; type = "gpt";
partitions = { partitions = {
ESP = { ESP = {
size = "512M"; size = "512M";
type = "EF00"; type = "EF00";
content = { content = {
type = "filesystem"; type = "filesystem";
format = "vfat"; format = "vfat";
mountpoint = "/boot"; mountpoint = "/boot";
mountOptions = [ "fmask=0022" "dmask=0022" "umask=0077" ]; mountOptions = [ "fmask=0022" "dmask=0022" "umask=0077" ];
};
}; };
root = { };
size = "100%"; root = {
content = { size = "100%";
type = "btrfs"; content = {
extraArgs = [ "-f" ]; # Force overwrite type = "btrfs";
subvolumes = { extraArgs = [ "-f" ]; # Force overwrite
"/root" = { subvolumes = {
mountpoint = "/"; "/root" = {
mountOptions = [ "compress=zstd" "noatime" ]; mountpoint = "/";
}; mountOptions = [ "compress=zstd" "noatime" ];
"/nix" = { };
mountpoint = "/nix"; "/nix" = {
mountOptions = [ "compress=zstd" "noatime" ]; mountpoint = "/nix";
}; mountOptions = [ "compress=zstd" "noatime" ];
"/persist" = { };
mountpoint = "/persist"; "/persist" = {
mountOptions = [ "compress=zstd" "noatime" ]; mountpoint = "/persist";
}; mountOptions = [ "compress=zstd" "noatime" ];
"/swap" = { };
mountpoint = "/.swapvol"; "/swap" = {
swap.swapfile.size = "8G"; mountpoint = "/.swapvol";
}; swap.swapfile.size = "8G";
}; };
}; };
}; };
}; };
@@ -84,141 +93,166 @@
}; };
}; };
}; };
boot.loader = { };
systemd-boot.enable = true; boot.loader = {
efi.canTouchEfiVariables = true; systemd-boot.enable = true;
}; efi.canTouchEfiVariables = true;
environment = { };
persistence."/persist" = { environment = {
hideMounts = true; persistence."/persist" = {
directories = [ hideMounts = true;
"/var/log" directories = [
"/var/lib/bluetooth" "/var/log"
"/var/lib/networkmanager" "/var/lib/bluetooth"
"/var/lib/nixos" "/var/lib/networkmanager"
"/etc/ssh" "/var/lib/nixos"
"/var/lib/systemd/coredump" "/etc/ssh"
"/etc/NetworkManager/system-connections" "/var/lib/systemd/coredump"
]; "/etc/NetworkManager/system-connections"
files = [ ];
"/etc/machine-id" files = [
]; "/etc/machine-id"
};
systemPackages = with pkgs; [
hyprpaper
libnotify
mako
qt6.qtwayland
hypridle
hyprlock
hyprpicker
wlogout
wl-clipboard
waybar
bat
#highlight
btop
eza
fzf
iwd
git
#gnumake
#neofetch
neovim
ripgrep
tldr
unzip
openssl
wget
zip
zoxide
jq
lazygit
#sqlit
less
mlocate
tree
tmux
tmuxinator
wget
zenity
gum
yazi
rsync
p7zip
impala
xdg-terminal-exec
]; ];
}; };
networking = { systemPackages = with pkgs; [
hostName = "stationette"; hyprpaper
networkmanager.enable = true; libnotify
}; mako
users.users.chris = { qt6.qtwayland
uid = 1000; hypridle
isNormalUser = true; hyprlock
initialPassword = "changeme123"; hyprpicker
shell = pkgs.zsh; wlogout
extraGroups = [ wl-clipboard
"chris" waybar
"wheel" bat
"networkmanager" highlight
]; btop
}; eza
programs = { fzf
zsh = { neovim
enable = true; ripgrep
}; tldr
hyprland = { unzip
enable = true; openssl
wget
zip
zoxide
jq
git
lazygit
less
tree
tmux
tmuxinator
wget
zenity
gum
pkgs-unstable.yazi
rsync
p7zip
impala
xdg-terminal-exec
];
};
networking = {
hostName = "stationette";
networkmanager.enable = true;
wireless = {
iwd.enable = true;
networks = {
ssid = "Outskirt Stable";
psk = "SidonPhlegm";
}; };
}; };
services = { firewall = {
openssh.enable = true; enable = true;
dbus.enable = true; # Ports used by Local Send
envfs.enable = true; # This ensures normal shebangs work (#!/bin/bash) allowedTCPPorts = [ 53317 ];
displayManager = { allowedUDPPorts = [ 53317 ];
sddm = {
enable = true;
wayland.enable = true;
theme = "maya";
};
autoLogin.enable = true;
autoLogin.user = "chris";
defaultSession = "hyprland";
};
}; };
};
users.users.chris = {
uid = 1000;
isNormalUser = true;
initialPassword = "changeme123";
shell = pkgs.zsh;
extraGroups = [
"chris"
"wheel"
"networkmanager"
];
};
nixpkgs.config.allowUnfree = true;
programs = {
zsh = {
enable = true;
};
hyprland = {
enable = true;
package = pkgs-unstable.hyprland;
xwayland.enable = true;
};
steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
};
services = {
openssh.enable = true;
dbus.enable = true;
envfs.enable = true; # This ensures normal shebangs work (#!/bin/bash)
expressvpn.enable = true;
locate.enable = true;
system.stateVersion = "25.11"; displayManager = {
home-manager = { sddm = {
users.chris = { pkgs, lib, ... }: { enable = true;
home = { wayland.enable = true;
file.".mozilla/firefox/default/search.json.mozlz4".force = lib.mkForce true; theme = "maya";
username = "chris"; };
homeDirectory = "/home/chris"; autoLogin.enable = true;
enableNixpkgsReleaseCheck = false; autoLogin.user = "chris";
stateVersion = "25.11"; defaultSession = "hyprland";
persistence."/persist" = { };
directories = [ };
"Downloads"
"Tower" system.stateVersion = "25.11";
".config/dotfiles" home-manager = {
".mozilla/firefox" users.chris = { pkgs, lib, ... }: {
".config/nvim" home = {
".config/yazi/plugins" file.".mozilla/firefox/default/search.json.mozlz4".force = lib.mkForce true;
".config/nixos" username = "chris";
".config/sinew.in" homeDirectory = "/home/chris";
".local/share/direnv" enableNixpkgsReleaseCheck = false;
".local/share/nvim" stateVersion = "25.11";
".local/share/zoxide" persistence."/persist" = {
".local/share/Enpass" directories = [
".ssh" "Downloads"
]; "Tower"
files = [ "Code"
".config/shell/.env" ".steam"
]; ".config/dotfiles"
}; ".mozilla/firefox"
activation.setupDotfiles = lib.hm.dag.entryAfter ["writeBoundary"] '' ".config/nvim"
".config/yazi/plugins"
".config/nixos"
".config/sinew.in"
".local/share/direnv"
".local/share/nvim"
".local/share/zoxide"
".local/share/Enpass"
".local/share/Steam"
".ssh"
];
files = [
".config/shell/.env"
];
};
activation = {
setupDotfiles = lib.hm.dag.entryAfter ["writeBoundary"] ''
if [[ -v DRY_RUN ]]; then if [[ -v DRY_RUN ]]; then
echo "Dry run: Would bootstrap dotfiles from labs.scarif.space" echo "Dry run: Would bootstrap dotfiles from labs.scarif.space"
exit exit
@@ -257,199 +291,310 @@
echo "Dotfiles bootstrapped successfully." echo "Dotfiles bootstrapped successfully."
''; '';
packages = with pkgs; [ setupDevDirectories = lib.hm.dag.entryAfter ["writeBoundary"] ''
# jetbrains.rider if [[ -v DRY_RUN ]]; then
# android-studio echo "Dry run: Would create dev directories"
# beekeeper-studio exit
# brave fi
# discord
# spotify echo "Creating development directories"
# go
# lua for dir in "DevOps" "FSharp" "JavaScript" "Scala" "Rust" "PHP" "Tutorials" "Sites" "MobileApps" "Tries"; do
nodePackages.pnpm if [ ! -d "$HOME/Code/$dir" ]; then
# (python3.withPackages (python-pkgs: [ python-pkgs.pip python-pkgs.requests ])) mkdir -p "$HOME/Code/$dir"
# rustup fi
# zig done
# obsidian '';
# thunderbird };
# libreoffice-qt packages = with pkgs; [
# pkgs-unstable.nerd-fonts.fira-code # jetbrains.rider
# hunspell # android-studio
# blueberry # beekeeper-studio
# steam # brave
# steam-run # go
# viewnior # lua
# pkgs-unstable.hyprshot direnv
# catppuccin-cursors.macchiatoBlue wiremix
# catppuccin-gtk bluetui
# papirus-folders spotify
# pkgs-unstable.php84Packages.composer nodePackages.pnpm
# pkgs-unstable.php84Packages.xdebug try-cli.packages.${system}.default
# pkgs-unstable.php84Extensions.sqlite3 # (python3.withPackages (python-pkgs: [ python-pkgs.pip python-pkgs.requests ]))
# pkgs-unstable.php84Extensions.redis # rustup
# pkgs-unstable.php84Extensions.sodium # zig
# pkgs-unstable.php84Extensions.pgsql obsidian
# pkgs-unstable.php84Extensions.iconv mailspring
# pkgs-unstable.php84Extensions.gd # thunderbird
# pkgs-unstable.php84Extensions.zip # libreoffice-qt
# php # pkgs-unstable.nerd-fonts.fira-code
# antigravity # hunspell
# gimp # blueberry
# kdePackages.dolphin # pkgs-unstable.hyprshot
enpass # catppuccin-cursors.macchiatoBlue
enpass-cli # catppuccin-gtk
expressvpn # papirus-folders
# jellyfin-ffmpeg # pkgs-unstable.php84Packages.composer
# inkscape # pkgs-unstable.php84Packages.xdebug
# krita # pkgs-unstable.php84Extensions.sqlite3
# libreoffice-fresh # pkgs-unstable.php84Extensions.redis
# nextcloud-client # pkgs-unstable.php84Extensions.sodium
nodejs_24 # pkgs-unstable.php84Extensions.pgsql
# signal-desktop # pkgs-unstable.php84Extensions.iconv
# sxiv # pkgs-unstable.php84Extensions.gd
# tenacity # pkgs-unstable.php84Extensions.zip
# unzip # php
zathura antigravity
ghostty gimp
yarn # kdePackages.dolphin
uwsm nautilus
# wally-cli enpass
# kdePackages.wacomtablet enpass-cli
# kdePackages.print-manager expressvpn
# mpv # jellyfin-ffmpeg
# vlc inkscape
# telegram-desktop krita
libreoffice-fresh
nextcloud-client
nodejs_24
signal-desktop
sxiv
tenacity
zathura
ghostty
yarn
uwsm
wally-cli
kdePackages.wacomtablet
# kdePackages.print-manager
mpv
vlc
imv
# telegram-desktop
];
};
xdg.mimeApps = {
enable = true;
defaultApplications = {
# Directories
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
# Images
"image/png" = [ "imv.desktop" ];
"image/jpeg" = [ "imv.desktop" ];
"image/gif" = [ "imv.desktop" ];
"image/webp" = [ "imv.desktop" ];
"image/bmp" = [ "imv.desktop" ];
"image/tiff" = [ "imv.desktop" ];
# Documents
"application/pdf" = [ "zathura.desktop" ];
# Web and Browser
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
"text/html" = [ "firefox.desktop" ];
# Video
"video/mp4" = [ "mpv.desktop" ];
"video/x-msvideo" = [ "mpv.desktop" ];
"video/x-matroska" = [ "mpv.desktop" ];
"video/x-flv" = [ "mpv.desktop" ];
"video/x-ms-wmv" = [ "mpv.desktop" ];
"video/mpeg" = [ "mpv.desktop" ];
"video/ogg" = [ "mpv.desktop" ];
"video/webm" = [ "mpv.desktop" ];
"video/quicktime" = [ "mpv.desktop" ];
"video/3gpp" = [ "mpv.desktop" ];
"video/3gpp2" = [ "mpv.desktop" ];
"video/x-ms-asf" = [ "mpv.desktop" ];
"video/x-ogm+ogg" = [ "mpv.desktop" ];
"video/x-theora+ogg" = [ "mpv.desktop" ];
"application/ogg" = [ "mpv.desktop" ];
# Mail
"x-scheme-handler/mailto" = [ "mailspring.desktop" ];
# Text and Code
"text/plain" = [ "nvim.desktop" ];
"text/english" = [ "nvim.desktop" ];
"text/x-makefile" = [ "nvim.desktop" ];
"text/x-c++hdr" = [ "nvim.desktop" ];
"text/x-c++src" = [ "nvim.desktop" ];
"text/x-chdr" = [ "nvim.desktop" ];
"text/x-csrc" = [ "nvim.desktop" ];
"text/x-java" = [ "nvim.desktop" ];
"text/x-moc" = [ "nvim.desktop" ];
"text/x-pascal" = [ "nvim.desktop" ];
"text/x-tcl" = [ "nvim.desktop" ];
"text/x-tex" = [ "nvim.desktop" ];
"application/x-shellscript" = [ "nvim.desktop" ];
"text/x-c" = [ "nvim.desktop" ];
"text/x-c++" = [ "nvim.desktop" ];
"application/xml" = [ "nvim.desktop" ];
"text/xml" = [ "nvim.desktop" ];
};
};
imports = [
inputs.walker.homeManagerModules.default
# inputs.elephant.homeManagerModules.default
];
systemd.user.services = {
walker = {
Unit.Description = "Walker - Application Runner";
Install.WantedBy = ["graphical-session.target"];
};
elephant = {
Unit.Description = "Elephant launcher backend";
Install.WantedBy = ["graphical-session.target"];
};
};
programs = let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
walker = {
enable = true;
runAsService = true;
};
elephant = {
enable = true;
installService = true;
};
firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = false;
DisableAccounts = false;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/* ---- EXTENSIONS ---- */
ExtensionSettings = {
"*".installation_mode = "allowed"; # blocks all addons except the ones specified below
# Enpass
"firefox-enpass@enpass.io" = {
install_url = "https://dl.enpass.io/stable/extensions/firefox/versions/v6.11.10.2/enpass_password_manager-6.11.10.2.xpi";
installation_mode = "force_installed";
};
};
/* ---- PREFERENCES ---- */
# Set preferences shared by all profiles.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;
"browser.formfill.enable" = lock-false;
"browser.search.suggest.enabled" = lock-false;
"browser.search.suggest.enabled.private" = lock-false;
"browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.highlights" = false;
};
};
};
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
search = {
default = "holocron";
order = [ "holocron" "google" ];
engines= {
holocron = {
name = "Holocron";
urls = [{
template = "https://holocron.scarif.space/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
icon = "https://holocron.scarif.space/favicon.ico";
definedAliases = [ "@h" ];
};
bing.metaData.hidden = true;
ebay.metaData.hidden = true;
perplexity.metaData.hidden = true;
};
};
};
};
};
};
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
permittedInsecurePackages = [
"electron-25.9.0" # Obsidian
"beekeeper-studio-5.3.4"
]; ];
}; };
programs = let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = false;
DisableAccounts = false;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/* ---- EXTENSIONS ---- */
ExtensionSettings = {
"*".installation_mode = "allowed"; # blocks all addons except the ones specified below
# Enpass
"firefox-enpass@enpass.io" = {
install_url = "https://dl.enpass.io/stable/extensions/firefox/versions/v6.11.10.2/enpass_password_manager-6.11.10.2.xpi";
installation_mode = "force_installed";
};
};
/* ---- PREFERENCES ---- */
# Set preferences shared by all profiles.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;
"browser.formfill.enable" = lock-false;
"browser.search.suggest.enabled" = lock-false;
"browser.search.suggest.enabled.private" = lock-false;
"browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.highlights" = false;
};
};
};
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
search = {
default = "holocron";
order = [ "holocron" "google" ];
engines= {
holocron = {
name = "Holocron";
urls = [{
template = "https://holocron.scarif.space/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
icon = "https://holocron.scarif.space/favicon.ico";
definedAliases = [ "@h" ];
};
bing.metaData.hidden = true;
ebay.metaData.hidden = true;
perplexity.metaData.hidden = true;
};
};
};
};
};
};
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
permittedInsecurePackages = [
"electron-25.9.0" # Obsidian
"beekeeper-studio-5.3.4"
];
};
};
};
extraSpecialArgs = {
inherit inputs;
}; };
}; };
} extraSpecialArgs = {
]; inherit inputs;
}; };
};
}
];
}; };
# Standalone home-manager configuration entrypoint
#homeConfigurations = {
# chris = home-manager.lib.homeManagerConfiguration {
# inherit pkgs;
# extraSpecialArgs = {
# inherit inputs;
# };
# modules = [
# ./home
# ];
# };
#};
}; };
# Standalone home-manager configuration entrypoint
#homeConfigurations = {
# chris = home-manager.lib.homeManagerConfiguration {
# inherit pkgs;
# extraSpecialArgs = {
# inherit inputs;
# };
# modules = [
# ./home
# ];
# };
#};
nix.settings = {
extra-substituters = [
"https://walker.cachix.org"
"https://walker-git.cachix.org"
];
extra-trusted-public-keys = [
"walker.cachix.org-1:fG8q+uAaMqhsMxWjwvk0IMb4mFPFLqHjuvfwQxE4oJM="
"walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="
];
};
};
} }