1
Fork 0

Cut down on a lot of flake inputs

This commit is contained in:
prescientmoon 2024-04-01 05:57:56 +02:00
parent a47be3adf9
commit f7f80163eb
Signed by: prescientmoon
SSH key fingerprint: SHA256:UUF9JT2s8Xfyv76b8ZuVL7XrmimH4o49p4b+iexbVH4
16 changed files with 459 additions and 1769 deletions

2011
flake.lock

File diff suppressed because it is too large Load diff

View file

@ -3,29 +3,19 @@
# {{{ Inputs # {{{ Inputs
inputs = { inputs = {
# {{{ Nixpkgs instances # {{{ Nixpkgs instances
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# }}} # }}}
# {{{ Additional package repositories # {{{ Additional package repositories
nur.url = "github:nix-community/NUR";
hyprland-contrib.url = "github:hyprwm/contrib";
hyprland-contrib.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
# Contains a bunch of wayland stuff not on nixpkgs
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
nixpkgs-wayland.inputs.nixpkgs.follows = "nixpkgs";
# Firefox addons # Firefox addons
firefox-addons.url = "git+https://gitlab.com/rycee/nur-expressions?dir=pkgs/firefox-addons"; firefox-addons.url = "git+https://gitlab.com/rycee/nur-expressions?dir=pkgs/firefox-addons";
firefox-addons.inputs.nixpkgs.follows = "nixpkgs"; firefox-addons.inputs.nixpkgs.follows = "nixpkgs";
# }}} # }}}
# {{{ Nix-related tooling # {{{ Nix-related tooling
# {{{ Storage # {{{ Storage
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
# Declarative partitioning # Declarative partitioning
@ -43,27 +33,16 @@
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.inputs.nixpkgs.follows = "nixpkgs";
korora.url = "github:adisbladis/korora"; korora.url = "github:adisbladis/korora";
# Nix language server
# [the docs](https://github.com/nix-community/nixd/blob/main/docs/user-guide.md#installation)
# tell me not to override the nixpkgs input.
nixd.url = "github:nix-community/nixd";
# }}} # }}}
# {{{ Standalone software # {{{ Standalone software
# {{{ Nightly versions of things # {{{ Nightly versions of things
hyprland.url = "github:hyprwm/Hyprland";
hyprland.inputs.nixpkgs.follows = "nixpkgs";
# https://github.com/happenslol/wezterm/blob/add-nix-flake/nix/flake.nix
wezterm.url = "github:happenslol/wezterm/add-nix-flake?dir=nix";
wezterm.inputs.nixpkgs.follows = "nixpkgs";
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
neovim-nightly-overlay.inputs.nixpkgs.follows = "nixpkgs"; neovim-nightly-overlay.inputs.nixpkgs.follows = "nixpkgs";
# }}} # }}}
# {{{ Self management # {{{ Self management
# Smos # Smos
smos.url = "github:Mateiadrielrafael/smos"; smos.url = "github:NorfairKing/smos";
smos.inputs.nixpkgs.url = "github:NixOS/nixpkgs/b8dd8be3c790215716e7c12b247f45ca525867e2";
# REASON: smos fails to build this way # REASON: smos fails to build this way
# smos.inputs.nixpkgs.follows = "nixpkgs"; # smos.inputs.nixpkgs.follows = "nixpkgs";
# smos.inputs.home-manager.follows = "home-manager"; # smos.inputs.home-manager.follows = "home-manager";
@ -72,23 +51,11 @@
intray.url = "github:NorfairKing/intray"; intray.url = "github:NorfairKing/intray";
intray.inputs.nixpkgs.url = "github:NixOS/nixpkgs/cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7"; intray.inputs.nixpkgs.url = "github:NixOS/nixpkgs/cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7";
# intray.inputs.home-manager.follows = "home-manager"; # intray.inputs.home-manager.follows = "home-manager";
# Tickler
tickler.url = "github:NorfairKing/tickler";
tickler.inputs.nixpkgs.follows = "nixpkgs";
tickler.inputs.intray.follows = "intray";
# }}} # }}}
# {{{ Anyrun
anyrun.url = "github:Kirottu/anyrun"; anyrun.url = "github:Kirottu/anyrun";
anyrun.inputs.nixpkgs.follows = "nixpkgs"; anyrun.inputs.nixpkgs.follows = "nixpkgs";
anyrun-nixos-options.url = "github:n3oney/anyrun-nixos-options";
anyrun-nixos-options.inputs.nixpkgs.follows = "nixpkgs";
# }}}
matui.url = "github:pkulak/matui";
matui.inputs.nixpkgs.follows = "nixpkgs";
# Spotify client with theming support # Spotify client with theming support
spicetify-nix.url = "github:the-argus/spicetify-nix"; spicetify-nix.url = "github:the-argus/spicetify-nix";
spicetify-nix.inputs.nixpkgs.follows = "nixpkgs"; spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
@ -99,9 +66,9 @@
grub2-themes.inputs.nixpkgs.follows = "nixpkgs"; grub2-themes.inputs.nixpkgs.follows = "nixpkgs";
# Stylix # Stylix
stylix.url = "github:danth/stylix"; stylix.url = "github:danth/stylix/a33d88cf8f75446f166f2ff4f810a389feed2d56";
stylix.inputs.nixpkgs.follows = "nixpkgs"; # stylix.inputs.nixpkgs.follows = "nixpkgs";
stylix.inputs.home-manager.follows = "home-manager"; # stylix.inputs.home-manager.follows = "home-manager";
# Catpuccin base16 color schemes # Catpuccin base16 color schemes
catppuccin-base16.url = "github:catppuccin/base16"; catppuccin-base16.url = "github:catppuccin/base16";
@ -116,7 +83,7 @@
outputs = { self, nixpkgs, home-manager, ... }@inputs: outputs = { self, nixpkgs, home-manager, ... }@inputs:
let let
# {{{ Common helpers # {{{ Common helpers
inherit (self) outputs; inherit (self) outputs;
forAllSystems = nixpkgs.lib.genAttrs [ forAllSystems = nixpkgs.lib.genAttrs [
# "aarch64-linux" TODO: purescript doesn't work on this one # "aarch64-linux" TODO: purescript doesn't work on this one
@ -128,21 +95,20 @@
specialArgs = system: { specialArgs = system: {
inherit inputs outputs; inherit inputs outputs;
spkgs = inputs.nixpkgs-stable.legacyPackages.${system};
upkgs = inputs.nixpkgs-unstable.legacyPackages.${system}; upkgs = inputs.nixpkgs-unstable.legacyPackages.${system};
}; };
# }}} # }}}
in in
{ {
# {{{ Packages # {{{ Packages
# Acessible through 'nix build', 'nix shell', etc # Accessible through 'nix build', 'nix shell', etc
packages = forAllSystems (system: packages = forAllSystems (system:
let pkgs = nixpkgs.legacyPackages.${system}; let pkgs = nixpkgs.legacyPackages.${system};
in import ./pkgs { inherit pkgs; } in import ./pkgs { inherit pkgs; }
); );
# }}} # }}}
# {{{ Bootstrapping and other pinned devshells # {{{ Bootstrapping and other pinned devshells
# Acessible through 'nix develop' # Accessible through 'nix develop'
devShells = forAllSystems devShells = forAllSystems
(system: (system:
let let
@ -253,19 +219,17 @@
# TODO: persist trusted substituters file # TODO: persist trusted substituters file
nixConfig = { nixConfig = {
extra-substituters = [ extra-substituters = [
"https://nix-community.cachix.org" # I think I need this for neovim-nightly? "https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org" # "https://anyrun.cachix.org"
"https://anyrun.cachix.org" # "https://smos.cachix.org"
"https://smos.cachix.org" # "https://intray.cachix.org"
"https://intray.cachix.org"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" # "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s=" # "smos.cachix.org-1:YOs/tLEliRoyhx7PnNw36cw2Zvbw5R0ASZaUlpUv+yM="
"smos.cachix.org-1:YOs/tLEliRoyhx7PnNw36cw2Zvbw5R0ASZaUlpUv+yM=" # "intray.cachix.org-1:qD7I/NQLia2iy6cbzZvFuvn09iuL4AkTmHvjxrQlccQ="
"intray.cachix.org-1:qD7I/NQLia2iy6cbzZvFuvn09iuL4AkTmHvjxrQlccQ="
]; ];
}; };
# }}} # }}}

View file

@ -22,6 +22,10 @@ in
enable = true; enable = true;
oauth-token-file = config.sops.secrets.smos_github_token.path; oauth-token-file = config.sops.secrets.smos_github_token.path;
}; };
calendar = {
enable = true;
};
}; };
# }}} # }}}
# {{{ Storage & secrets # {{{ Storage & secrets

View file

@ -2,6 +2,7 @@
let let
themeMap = pkgs.callPackage (import ./themes.nix) { }; themeMap = pkgs.callPackage (import ./themes.nix) { };
# REASON: newer discord versions don't work with the one in nixpkgs
discocss = pkgs.discocss.overrideAttrs (old: rec { discocss = pkgs.discocss.overrideAttrs (old: rec {
version = "0.3.0"; version = "0.3.0";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {

View file

@ -6,6 +6,7 @@ local conds = require("luasnip.extras.expand_conditions")
local t = ls.text_node local t = ls.text_node
local i = ls.insert_node local i = ls.insert_node
local d = ls.dynamic_node local d = ls.dynamic_node
local c = ls.choice_node
local f = ls.function_node local f = ls.function_node
local sn = ls.snippet_node local sn = ls.snippet_node
local fmt = require("luasnip.extras.fmt").fmt local fmt = require("luasnip.extras.fmt").fmt

View file

@ -3,12 +3,12 @@ let
# Toggles for including tooling related to a given language # Toggles for including tooling related to a given language
packedTargets = { packedTargets = {
elm = false; elm = false;
latex = true; latex = false;
lua = true; lua = true;
nix = true; nix = true;
purescript = false; purescript = false;
python = true; python = false;
rust = true; rust = false;
typst = true; typst = true;
web = true; web = true;
}; };
@ -895,6 +895,18 @@ let
''; '';
desc = "Jump to previous snippet tabstop"; desc = "Jump to previous snippet tabstop";
} }
{
mode = "is";
mapping = "<c-a>";
action = "<Plug>luasnip-prev-choice";
desc = "Previous snippet node choice";
}
{
mode = "is";
mapping = "<c-f>";
action = "<Plug>luasnip-next-choice";
desc = "Next snippet node choice";
}
]; ];
# }}} # }}}
}; };
@ -917,7 +929,7 @@ let
optionals nix [ optionals nix [
pkgs.rnix-lsp pkgs.rnix-lsp
pkgs.nil pkgs.nil
inputs.nixd.packages.${pkgs.system}.nixd pkgs.nixd
] ++ ] ++
optionals latex [ optionals latex [
pkgs.texlab pkgs.texlab

View file

@ -49,9 +49,9 @@
# {{{ Nodejs # {{{ Nodejs
satellite.persistence.at.cache.apps.nodejs = { satellite.persistence.at.cache.apps.nodejs = {
files = [ files = [
".yarnrc" # auto-generated by yarn # ".yarnrc" # auto-generated by yarn
".node_repl_history" ".node_repl_history"
".ts_node_repl_history" # ".ts_node_repl_history"
]; ];
directories = [ directories = [

View file

@ -10,7 +10,6 @@
stdin stdin
# symbols # Looks ugly atm # symbols # Looks ugly atm
# websearch # websearch
# inputs.anyrun-nixos-options.packages.${pkgs.system}.default # Idk how to set this up :(
]; ];
# }}} # }}}
# {{{ Geometry # {{{ Geometry
@ -83,11 +82,4 @@
/* }}} */ /* }}} */
''; '';
}; };
# # See [the readme](https://github.com/n3oney/anyrun-nixos-options) for anyrun-nixos-options.
# programs.anyrun.extraConfigFiles."nixos-options.ron".text = ''
# Config(
# options_path: "${config.system.build.manual.optionsJSON}/share/doc/nixos/options.json"
# )
# '';
} }

View file

@ -1,5 +1,5 @@
# Common wayland stuff # Common wayland stuff
{ lib, pkgs, inputs, ... }: { { lib, pkgs, ... }: {
imports = [ imports = [
./wlsunset.nix ./wlsunset.nix
./wlogout.nix ./wlogout.nix
@ -44,6 +44,6 @@
wl-qr # Custom qr scanner script wl-qr # Custom qr scanner script
wl-clipboard # Clipboard manager wl-clipboard # Clipboard manager
hyprpicker # Color picker hyprpicker # Color picker
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast # Screenshot tool grimblast # Screenshot tool
]; ];
} }

View file

@ -4,7 +4,6 @@ let
imports = [ imports = [
# {{{ flake inputs # {{{ flake inputs
inputs.stylix.homeManagerModules.stylix inputs.stylix.homeManagerModules.stylix
inputs.nur.nixosModules.nur
inputs.impermanence.nixosModules.home-manager.impermanence inputs.impermanence.nixosModules.home-manager.impermanence
inputs.spicetify-nix.homeManagerModules.spicetify inputs.spicetify-nix.homeManagerModules.spicetify
inputs.anyrun.homeManagerModules.default inputs.anyrun.homeManagerModules.default
@ -42,6 +41,7 @@ in
config.permittedInsecurePackages = [ config.permittedInsecurePackages = [
"electron-25.9.0" "electron-25.9.0"
"nix-2.15.3"
]; ];
}; };
# }}} # }}}

View file

@ -22,7 +22,6 @@
# signal-desktop # Signal client # signal-desktop # Signal client
element-desktop # Matrix client element-desktop # Matrix client
# zoom-us # Zoom client 🤮 # zoom-us # Zoom client 🤮
# inputs.matui.packages.${pkgs.system}.matui # Matrix TUi
# }}} # }}}
# {{{ Editors for different formats # {{{ Editors for different formats
# gimp # Image editing # gimp # Image editing
@ -42,7 +41,7 @@
obsidian # Note-taking obsidian # Note-taking
bitwarden # Password-manager bitwarden # Password-manager
# plover.dev # steno engine # plover.dev # steno engine
# qbittorrent # Torrent client qbittorrent # Torrent client
# google-chrome # Not my primary browser, but sometimes needed in webdev # google-chrome # Not my primary browser, but sometimes needed in webdev
# }}} # }}}
# {{{ Media playing/recording # {{{ Media playing/recording

View file

@ -4,10 +4,8 @@ let
# {{{ Imports # {{{ Imports
imports = [ imports = [
# {{{ flake inputs # {{{ flake inputs
# inputs.hyprland.nixosModules.default
inputs.disko.nixosModules.default inputs.disko.nixosModules.default
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nur.nixosModules.nur
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
# }}} # }}}
# {{{ global configuration # {{{ global configuration

View file

@ -31,5 +31,16 @@
automatic_instance_redirect = true; automatic_instance_redirect = true;
}; };
}; };
# REASON: the current invidious is broken, and cannot play videos
packages = prev.invidious.overrideAttrs (_oldAttrs: {
src = prev.fetchFromGitHub {
owner = "iv-org";
repo = "invidious";
fetchSubmodules = true;
rev = "08390acd0c17875fddb84cabba54197a5b5740e4";
sha256 = "sha256-75C/ImX/PYikVdSO4rZM/aYyEgx6pU90BHNeRFfcsDM=";
};
});
}; };
} }

View file

@ -0,0 +1,54 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.bemenu;
in
{
meta.maintainers = [ hm.maintainers.omernaveedxyz ];
options.programs.bemenu = {
enable = mkEnableOption "bemenu";
package = mkPackageOption pkgs "bemenu" { };
settings = mkOption {
type = with types; attrsOf (oneOf [ str number bool ]);
default = { };
example = literalExpression ''
{
line-height = 28;
prompt = "open";
ignorecase = true;
fb = "#1e1e2e";
ff = "#cdd6f4";
nb = "#1e1e2e";
nf = "#cdd6f4";
tb = "#1e1e2e";
hb = "#1e1e2e";
tf = "#f38ba8";
hf = "#f9e2af";
af = "#cdd6f4";
ab = "#1e1e2e";
width-factor = 0.3;
}
'';
description =
"Configuration options for bemenu. See {manpage}`bemenu(1)`.";
};
};
config = mkIf cfg.enable {
assertions =
[ (hm.assertions.assertPlatform "programs.bemenu" pkgs platforms.linux) ];
home.packages = [ cfg.package ];
home.sessionVariables = mkIf (cfg.settings != { }) {
BEMENU_OPTS = cli.toGNUCommandLineShell { } cfg.settings;
};
};
}

View file

@ -0,0 +1,28 @@
{ config, lib, pkgs, ... }:
with lib;
let
yamlFormat = pkgs.formats.yaml { };
in {
options.programs.k9s = {
skins = mkOption {
type = types.attrsOf yamlFormat.type;
default = { };
description = ''
Skin files written to {file}`$XDG_CONFIG_HOME/k9s/skins/`. See
<https://k9scli.io/topics/skins/> for supported values.
'';
example = literalExpression ''
my_blue_skin = {
k9s = {
body = {
fgColor = "dodgerblue";
};
};
};
'';
};
};
}

View file

@ -3,6 +3,9 @@
{ {
# example = import ./example.nix; # example = import ./example.nix;
bemenu = import ./compat/bemenu.nix;
k9s = import ./compat/k9s.nix;
# Personal things # Personal things
firefox = import ./firefox; firefox = import ./firefox;
monitors = import ./monitors.nix; monitors = import ./monitors.nix;