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"
} }
} }
}, },

205
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 {
@@ -116,14 +126,10 @@
wl-clipboard wl-clipboard
waybar waybar
bat bat
#highlight highlight
btop btop
eza eza
fzf fzf
iwd
git
#gnumake
#neofetch
neovim neovim
ripgrep ripgrep
tldr tldr
@@ -133,17 +139,16 @@
zip zip
zoxide zoxide
jq jq
git
lazygit lazygit
#sqlit
less less
mlocate
tree tree
tmux tmux
tmuxinator tmuxinator
wget wget
zenity zenity
gum gum
yazi pkgs-unstable.yazi
rsync rsync
p7zip p7zip
impala impala
@@ -153,6 +158,19 @@
networking = { networking = {
hostName = "stationette"; hostName = "stationette";
networkmanager.enable = true; networkmanager.enable = true;
wireless = {
iwd.enable = true;
networks = {
ssid = "Outskirt Stable";
psk = "SidonPhlegm";
};
};
firewall = {
enable = true;
# Ports used by Local Send
allowedTCPPorts = [ 53317 ];
allowedUDPPorts = [ 53317 ];
};
}; };
users.users.chris = { users.users.chris = {
uid = 1000; uid = 1000;
@@ -165,18 +183,30 @@
"networkmanager" "networkmanager"
]; ];
}; };
nixpkgs.config.allowUnfree = true;
programs = { programs = {
zsh = { zsh = {
enable = true; enable = true;
}; };
hyprland = { hyprland = {
enable = true; 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 = { services = {
openssh.enable = true; openssh.enable = true;
dbus.enable = true; dbus.enable = true;
envfs.enable = true; # This ensures normal shebangs work (#!/bin/bash) envfs.enable = true; # This ensures normal shebangs work (#!/bin/bash)
expressvpn.enable = true;
locate.enable = true;
displayManager = { displayManager = {
sddm = { sddm = {
enable = true; enable = true;
@@ -202,6 +232,8 @@
directories = [ directories = [
"Downloads" "Downloads"
"Tower" "Tower"
"Code"
".steam"
".config/dotfiles" ".config/dotfiles"
".mozilla/firefox" ".mozilla/firefox"
".config/nvim" ".config/nvim"
@@ -212,13 +244,15 @@
".local/share/nvim" ".local/share/nvim"
".local/share/zoxide" ".local/share/zoxide"
".local/share/Enpass" ".local/share/Enpass"
".local/share/Steam"
".ssh" ".ssh"
]; ];
files = [ files = [
".config/shell/.env" ".config/shell/.env"
]; ];
}; };
activation.setupDotfiles = lib.hm.dag.entryAfter ["writeBoundary"] '' 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,28 +291,44 @@
echo "Dotfiles bootstrapped successfully." echo "Dotfiles bootstrapped successfully."
''; '';
setupDevDirectories = lib.hm.dag.entryAfter ["writeBoundary"] ''
if [[ -v DRY_RUN ]]; then
echo "Dry run: Would create dev directories"
exit
fi
echo "Creating development directories"
for dir in "DevOps" "FSharp" "JavaScript" "Scala" "Rust" "PHP" "Tutorials" "Sites" "MobileApps" "Tries"; do
if [ ! -d "$HOME/Code/$dir" ]; then
mkdir -p "$HOME/Code/$dir"
fi
done
'';
};
packages = with pkgs; [ packages = with pkgs; [
# jetbrains.rider # jetbrains.rider
# android-studio # android-studio
# beekeeper-studio # beekeeper-studio
# brave # brave
# discord
# spotify
# go # go
# lua # lua
direnv
wiremix
bluetui
spotify
nodePackages.pnpm nodePackages.pnpm
try-cli.packages.${system}.default
# (python3.withPackages (python-pkgs: [ python-pkgs.pip python-pkgs.requests ])) # (python3.withPackages (python-pkgs: [ python-pkgs.pip python-pkgs.requests ]))
# rustup # rustup
# zig # zig
# obsidian obsidian
mailspring
# thunderbird # thunderbird
# libreoffice-qt # libreoffice-qt
# pkgs-unstable.nerd-fonts.fira-code # pkgs-unstable.nerd-fonts.fira-code
# hunspell # hunspell
# blueberry # blueberry
# steam
# steam-run
# viewnior
# pkgs-unstable.hyprshot # pkgs-unstable.hyprshot
# catppuccin-cursors.macchiatoBlue # catppuccin-cursors.macchiatoBlue
# catppuccin-gtk # catppuccin-gtk
@@ -293,34 +343,111 @@
# pkgs-unstable.php84Extensions.gd # pkgs-unstable.php84Extensions.gd
# pkgs-unstable.php84Extensions.zip # pkgs-unstable.php84Extensions.zip
# php # php
# antigravity antigravity
# gimp gimp
# kdePackages.dolphin # kdePackages.dolphin
nautilus
enpass enpass
enpass-cli enpass-cli
expressvpn expressvpn
# jellyfin-ffmpeg # jellyfin-ffmpeg
# inkscape inkscape
# krita krita
# libreoffice-fresh libreoffice-fresh
# nextcloud-client nextcloud-client
nodejs_24 nodejs_24
# signal-desktop signal-desktop
# sxiv sxiv
# tenacity tenacity
# unzip
zathura zathura
ghostty ghostty
yarn yarn
uwsm uwsm
# wally-cli wally-cli
# kdePackages.wacomtablet kdePackages.wacomtablet
# kdePackages.print-manager # kdePackages.print-manager
# mpv mpv
# vlc vlc
imv
# telegram-desktop # 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 programs = let
lock-false = { lock-false = {
Value = false; Value = false;
@@ -331,6 +458,14 @@
Status = "locked"; Status = "locked";
}; };
in { in {
walker = {
enable = true;
runAsService = true;
};
elephant = {
enable = true;
installService = true;
};
firefox = { firefox = {
enable = true; enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped { package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
@@ -451,5 +586,15 @@
# ]; # ];
# }; # };
#}; #};
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="
];
};
}; };
} }