Update to nixpgks 24.05
This commit is contained in:
parent
5247160b43
commit
a6293a1ba4
|
@ -18,7 +18,7 @@ let
|
|||
opacity = transparency 0.7;
|
||||
polarity = "dark";
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
satellite.rounding.radius = 8;
|
||||
};
|
||||
# }}}
|
||||
# {{{ Catppuccin latte
|
||||
|
@ -29,7 +29,7 @@ let
|
|||
opacity = transparency 0.7;
|
||||
polarity = "light";
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
satellite.rounding.radius = 8;
|
||||
};
|
||||
# }}}
|
||||
# {{{ Catppuccin macchiato
|
||||
|
@ -40,7 +40,7 @@ let
|
|||
opacity = transparency 0.7;
|
||||
polarity = "dark";
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
satellite.rounding.radius = 8;
|
||||
};
|
||||
# }}}
|
||||
# {{{ Rosepine dawn
|
||||
|
@ -61,12 +61,12 @@ let
|
|||
opacity = transparency 0.7;
|
||||
polarity = "light";
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
satellite.rounding.radius = 8;
|
||||
|
||||
# For this one, I went with a big size, which means the blur just adds a slight gradient to the backgrounds.
|
||||
satellite.blur = {
|
||||
brightness = 1.05;
|
||||
size = 25.0;
|
||||
size = 25;
|
||||
};
|
||||
};
|
||||
# }}}
|
||||
|
@ -78,7 +78,7 @@ let
|
|||
opacity = transparency 0.7;
|
||||
polarity = "dark";
|
||||
};
|
||||
satellite.rounding.radius = 8.0;
|
||||
satellite.rounding.radius = 8;
|
||||
};
|
||||
# }}}
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, self, system, ... }: rec {
|
||||
{ pkgs, self, ... }: rec {
|
||||
octodns-zones =
|
||||
let
|
||||
nixosConfigModules = pkgs.lib.mapAttrsToList
|
||||
|
@ -19,7 +19,7 @@
|
|||
octodns-sync =
|
||||
pkgs.symlinkJoin {
|
||||
name = "octodns-sync";
|
||||
paths = [ self.packages.${system}.octodns ];
|
||||
paths = [ self.packages.${pkgs.system}.octodns ];
|
||||
buildInputs = [ pkgs.makeWrapper pkgs.yq ];
|
||||
postBuild = ''
|
||||
cat ${./octodns.yaml} | yq '.providers.zones.directory="${octodns-zones}"' > $out/config.yaml
|
||||
|
|
562
flake.lock
562
flake.lock
File diff suppressed because it is too large
Load diff
22
flake.nix
22
flake.nix
|
@ -4,7 +4,7 @@
|
|||
# {{{ Inputs
|
||||
inputs = {
|
||||
# {{{ Nixpkgs instances
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
# }}}
|
||||
# {{{ Additional package repositories
|
||||
|
@ -23,7 +23,7 @@
|
|||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# }}}
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager/release-23.11";
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nix-index-database.url = "github:Mic92/nix-index-database";
|
||||
|
@ -33,9 +33,6 @@
|
|||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
korora.url = "github:adisbladis/korora";
|
||||
|
||||
nixos-dns.url = "github:Janik-Haag/nixos-dns";
|
||||
nixos-dns.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# }}}
|
||||
# {{{ Standalone software
|
||||
# {{{ Nightly versions of things
|
||||
|
@ -45,15 +42,11 @@
|
|||
# {{{ Self management
|
||||
# Smos
|
||||
smos.url = "github:NorfairKing/smos";
|
||||
smos.inputs.nixpkgs.url = "github:NixOS/nixpkgs/b8dd8be3c790215716e7c12b247f45ca525867e2";
|
||||
# REASON: smos fails to build this way
|
||||
# smos.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# smos.inputs.home-manager.follows = "home-manager";
|
||||
# smos.inputs.nixpkgs.url = "github:NixOS/nixpkgs/b8dd8be3c790215716e7c12b247f45ca525867e2";
|
||||
|
||||
# Intray
|
||||
intray.url = "github:NorfairKing/intray";
|
||||
intray.inputs.nixpkgs.url = "github:NixOS/nixpkgs/cf28ee258fd5f9a52de6b9865cdb93a1f96d09b7";
|
||||
# intray.inputs.home-manager.follows = "home-manager";
|
||||
# intray.inputs.nixpkgs.url = "github:NixOS/nixpkgs/fc07dc3bdf2956ddd64f24612ea7fc894933eb2e";
|
||||
# }}}
|
||||
|
||||
anyrun.url = "github:Kirottu/anyrun";
|
||||
|
@ -84,12 +77,7 @@
|
|||
let
|
||||
# {{{ Common helpers
|
||||
inherit (self) outputs;
|
||||
forAllSystems = nixpkgs.lib.genAttrs [
|
||||
# "aarch64-linux" TODO: purescript doesn't work on this one
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" ];
|
||||
|
||||
specialArgs = system: {
|
||||
inherit inputs outputs;
|
||||
|
|
|
@ -12,7 +12,6 @@ set fish_cursor_insert line # Set the insert mode cursor to a line
|
|||
set fish_cursor_replace_one underscore # Set the replace mode cursor to an underscore
|
||||
|
||||
# Force fish to skip some checks (I think?)
|
||||
# TODO: research why this is here
|
||||
set fish_vi_force_cursor
|
||||
# }}}
|
||||
# {{{ Disable greeting
|
||||
|
|
|
@ -7,7 +7,6 @@ let
|
|||
# C-z to return to background process
|
||||
"\\cz" = "fg && ${repaint}";
|
||||
# C-y to yank current command
|
||||
# TODO: make this work in xorg as well
|
||||
"\\cy" = "wl-copy \$(commandline)";
|
||||
# C-e to launch $EDITOR
|
||||
"\\ce" = "$EDITOR";
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
{ pkgs, config, ... }:
|
||||
let
|
||||
pinentry =
|
||||
if config.gtk.enable then {
|
||||
packages = [ pkgs.pinentry-gnome pkgs.gcr ];
|
||||
name = "gnome3";
|
||||
} else {
|
||||
packages = [ pkgs.pinentry-curses ];
|
||||
name = "curses";
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = pinentry.packages;
|
||||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentryFlavor = pinentry.name;
|
||||
pinentryPackage =
|
||||
if config.gtk.enable
|
||||
then pkgs.pinentry-gnome3
|
||||
else pkgs.pinentry-curses;
|
||||
};
|
||||
|
||||
programs.gpg.enable = true;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
{
|
||||
imports = [ ./smos ./intray.nix ./mail.nix ];
|
||||
imports = [
|
||||
./smos
|
||||
# ./intray.nix
|
||||
./mail.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
{ config, ... }: {
|
||||
{ config, inputs, pkgs, ... }: {
|
||||
sops.secrets.intray_password.sopsFile = ./secrets.yaml;
|
||||
|
||||
programs.intray = {
|
||||
enable = true;
|
||||
|
||||
# We don't want to use the statically-linked binary, as it requires pulling-in ghc-musl.
|
||||
intray-cli = inputs.intray.packages.${pkgs.system}.default.intray-cli;
|
||||
|
||||
data-dir = "${config.satellite.persistence.at.state.home}/intray";
|
||||
cache-dir = "${config.satellite.persistence.at.cache.home}/intray";
|
||||
config.sync = "AlwaysSync";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, inputs, ... }:
|
||||
let workflowDir = "${config.home.homeDirectory}/productivity/smos";
|
||||
in
|
||||
{
|
||||
|
@ -8,6 +8,9 @@ in
|
|||
programs.smos = {
|
||||
inherit workflowDir;
|
||||
|
||||
# We don't want to use the statically-linked binary, as it requires pulling-in ghc-musl.
|
||||
smosReleasePackages = inputs.smos.packages.${pkgs.system}.default;
|
||||
|
||||
enable = true;
|
||||
notify.enable = true;
|
||||
|
||||
|
|
4
home/features/cli/zellij.nix
Normal file
4
home/features/cli/zellij.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
programs.zellij.enable = true;
|
||||
stylix.targets.zellij.enable = true;
|
||||
}
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
# Use a base16 theme for gtk apps!
|
||||
stylix.targets.gtk.enable = true;
|
||||
gtk.enable = true;
|
||||
|
||||
gtk.iconTheme = {
|
||||
package = pkgs.papirus-icon-theme;
|
||||
|
|
|
@ -288,7 +288,6 @@ in
|
|||
# {{{ Standalone "apps" which actually run inside a browser.
|
||||
apps.extensions = extensions;
|
||||
apps.app = {
|
||||
# TODO: auto increment ids
|
||||
# {{{ Desmos
|
||||
desmos = {
|
||||
url = "https://www.desmos.com/calculator";
|
||||
|
@ -305,23 +304,14 @@ in
|
|||
id = 2;
|
||||
};
|
||||
# }}}
|
||||
# {{{ Syncthing
|
||||
syncthing = {
|
||||
url = "http://localhost:8384/";
|
||||
icon = ../../../../common/icons/syncthing.png;
|
||||
displayName = "Syncthing";
|
||||
id = 3;
|
||||
};
|
||||
# }}}
|
||||
};
|
||||
# }}}
|
||||
};
|
||||
|
||||
# TODO: uncomment when using newer version
|
||||
# stylix.targets.firefox = {
|
||||
# enable = true;
|
||||
# profileNames = [ config.home.username "desmos" "monkey-type" "syncthing" ];
|
||||
# };
|
||||
stylix.targets.firefox = {
|
||||
enable = true;
|
||||
profileNames = [ config.home.username "desmos" "monkey-type" ];
|
||||
};
|
||||
|
||||
# {{{ Make firefox the default
|
||||
# Use firefox as the default browser to open stuff.
|
||||
|
|
4
home/features/desktop/foot.nix
Normal file
4
home/features/desktop/foot.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
programs.foot.enable=true;
|
||||
stylix.targets.foot.enable=true;
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{ inputs, upkgs, config, ... }: {
|
||||
home.packages = [ upkgs.wezterm ];
|
||||
{ inputs, pkgs, config, ... }: {
|
||||
home.packages = [pkgs.wezterm ];
|
||||
|
||||
xdg.configFile."wezterm/nix".source =
|
||||
config.satellite.lib.lua.writeFile
|
||||
|
|
|
@ -178,5 +178,7 @@ config.keys = {
|
|||
}
|
||||
-- }}}
|
||||
|
||||
config.enable_wayland = false
|
||||
|
||||
-- and finally, return the configuration to wezterm
|
||||
return config
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
set statusbar-bg '${base00}'
|
||||
# }}}
|
||||
# {{{ Highlighting parts of the document (e.g. show search results)
|
||||
# TODO: make sure these look fine on other schemes
|
||||
set highlight-color '${base03}'
|
||||
set highlight-active-color '${base06}'
|
||||
# }}}
|
||||
|
|
|
@ -1,58 +1,58 @@
|
|||
{
|
||||
"clipboard-image": { "branch": "main", "commit": "485de5493d196154db30f85665f8ac480ce116a2" },
|
||||
"cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
||||
"clipboard-image": { "branch": "main", "commit": "4ab6f7f1fa4ea97866c0e0f6160f6a36ef174438" },
|
||||
"cmp": { "branch": "main", "commit": "7e348da6e5085ac447144a2ef4b637220ba27209" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
||||
"cmp-emoji": { "branch": "main", "commit": "19075c36d5820253d32e2478b6aaf3734aeaafa0" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||
"cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"conform": { "branch": "master", "commit": "192a6d2ddace343f1840a8f72efe2315bd392243" },
|
||||
"crates": { "branch": "main", "commit": "ec2b04a380c9f3a8e6ca38c230e4990d71978143" },
|
||||
"conform": { "branch": "master", "commit": "cd75be867f2331b22905f47d28c0c270a69466aa" },
|
||||
"crates": { "branch": "main", "commit": "c3fd47391de6999f4c939af89494d08443f71916" },
|
||||
"discord-rich-presence": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
||||
"dressing": { "branch": "master", "commit": "6f212262061a2120e42da0d1e87326e8a41c0478" },
|
||||
"dressing": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
|
||||
"fidget": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
|
||||
"flash": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
|
||||
"flash": { "branch": "main", "commit": "d0799ae43a581d9f190e182e2a1f389d2887c42a" },
|
||||
"ftft": { "branch": "master", "commit": "f3e43c9584e14b27f04c27a95a9d9f0e58dfec02" },
|
||||
"github-actions": { "branch": "master", "commit": "f2f16243447cea174daa6b4a9ffd3ff9213814ef" },
|
||||
"github-actions": { "branch": "master", "commit": "728374ef59b11a5f5991ea2560d149a4ae33fd22" },
|
||||
"gitlinker": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
||||
"gitsigns": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
|
||||
"gruvbox": { "branch": "main", "commit": "6e4027ae957cddf7b193adfaec4a8f9e03b4555f" },
|
||||
"gitsigns": { "branch": "main", "commit": "e9c4187c3774a46df2d086a66cf3a7e6bea4c432" },
|
||||
"gruvbox": { "branch": "main", "commit": "7a1b23e4edf73a39642e77508ee6b9cbb8c60f9e" },
|
||||
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
|
||||
"haskell-tools": { "branch": "master", "commit": "92e097c6832405fb64e4c44a7ce8bebe7836cae6" },
|
||||
"hyprland": { "branch": "main", "commit": "71760fe0cad972070657b0528f48456f7e0027b2" },
|
||||
"idris": { "branch": "main", "commit": "8bff02984a33264437e70fd9fff4359679d910da" },
|
||||
"inc-rename": { "branch": "main", "commit": "6f9b5f9cb237e12935144cdc535322b8c93c1b25" },
|
||||
"indent-blankline": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" },
|
||||
"inc-rename": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" },
|
||||
"indent-blankline": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
||||
"lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
|
||||
"lean": { "branch": "main", "commit": "1a2a2dfbc7e6775e9ec8b84e5eadaf31fde1894e" },
|
||||
"lean": { "branch": "main", "commit": "182703184edb866d7bfe878be358295e189c8223" },
|
||||
"live-command": { "branch": "main", "commit": "d460067d47948725a6f25b20f31ea8bbfdfe4622" },
|
||||
"lspconfig": { "branch": "master", "commit": "16295b79410f131c4fa7870c663b4ace6a761fb2" },
|
||||
"lspconfig": { "branch": "master", "commit": "216deb2d1b5fbf24398919228208649bbf5cbadf" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
||||
"luasnip": { "branch": "master", "commit": "8ae1dedd988eb56441b7858bd1e8554dfadaa46d" },
|
||||
"mini.ai": { "branch": "main", "commit": "98e45e6832351354e41e82b32a80ce7537c20746" },
|
||||
"mini.comment": { "branch": "main", "commit": "a4b7e46deb9ad2feb8902cc5dbf087eced112ee5" },
|
||||
"mini.files": { "branch": "main", "commit": "eab771c69b787a3f042dc6505d15613c282aa786" },
|
||||
"mini.operators": { "branch": "main", "commit": "0765e4818086e96b8fb55d280e47af781a5bc56a" },
|
||||
"mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" },
|
||||
"mini.statusline": { "branch": "main", "commit": "dfd3d2ba295473930f78f143852b9b53eb54ae2a" },
|
||||
"mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" },
|
||||
"luasnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||
"mini.ai": { "branch": "main", "commit": "45587078f323eaf41b9f701bbc04f8d1ab008979" },
|
||||
"mini.comment": { "branch": "main", "commit": "080f00bb91fea4bab799820bd2ce835a88d0703a" },
|
||||
"mini.files": { "branch": "main", "commit": "acfc4e46f6722a0690ce640632c5b5515ddade70" },
|
||||
"mini.operators": { "branch": "main", "commit": "7d30c0bc5baaa1f0d3a63dd18b35c8581bc164f4" },
|
||||
"mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
|
||||
"mini.statusline": { "branch": "main", "commit": "ec7e2c509c7262fef85a28a772f60ebe146297db" },
|
||||
"mini.surround": { "branch": "main", "commit": "57caca9525cec0ea771a67326b0ee637d056078a" },
|
||||
"navigator": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
|
||||
"neoconf": { "branch": "main", "commit": "4ef6c6c5882e7e16209173fb8c47414202843384" },
|
||||
"neodev": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
|
||||
"nui": { "branch": "main", "commit": "c3c7fd618dcb5a89e443a2e1033e7d11fdb0596b" },
|
||||
"neoconf": { "branch": "main", "commit": "23f24edab5f78465a0bc3320678e038664b9aa6e" },
|
||||
"neodev": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||
"nui": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||
"null-ls": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
||||
"plenary": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
|
||||
"plenary": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"purescript": { "branch": "main", "commit": "82348352e6568fcc0385bd7c99a8ead3a479feea" },
|
||||
"rust-tools": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" },
|
||||
"rzip": { "branch": "master", "commit": "f65400fed27b27c7cff7ef8d428c4e5ff749bf28" },
|
||||
"scrap": { "branch": "main", "commit": "cc8453ed613932c744c3d1ec42f379b78bd8b92c" },
|
||||
"ssr": { "branch": "main", "commit": "bb323ba621ac647b4ac5638b47666e3ef3c279e1" },
|
||||
"telescope": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
||||
"treesitter": { "branch": "master", "commit": "19bf991be2403c10fa379fa0fb11b7de2560ac31" },
|
||||
"typst": { "branch": "main", "commit": "e28d440c7ba4df2516d7d7f908c4fb664a8cf86c" },
|
||||
"undotree": { "branch": "master", "commit": "9dbbf3b7d19dda0d22ceca461818e4739ad8154d" },
|
||||
"wakatime": { "branch": "master", "commit": "285c2e4e48fb0c63ced233c00fb10a2edb3b6c94" },
|
||||
"web-devicons": { "branch": "master", "commit": "14ac5887110b06b89a96881d534230dac3ed134d" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
||||
"telescope": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"treesitter": { "branch": "master", "commit": "7f4ac678770175cdf0d42c015f4a5b6e18b6cb33" },
|
||||
"typst": { "branch": "main", "commit": "4d18ced62599ffe5b3c0e5e49566d5456121bc02" },
|
||||
"undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
|
||||
"wakatime": { "branch": "master", "commit": "3cb40867cb5a3120f9bef76eff88edc7f1dc1a23" },
|
||||
"web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "c77cda8cd2f54965e4316699f1d124a2b3bf9d49" }
|
||||
}
|
|
@ -130,11 +130,17 @@ function M.configure(opts, context)
|
|||
opts = opts(context)
|
||||
end
|
||||
|
||||
if type(opts) ~= "table" then
|
||||
-- TODO: throw
|
||||
if opts == nil then
|
||||
return
|
||||
end
|
||||
|
||||
if type(opts) ~= "table" then
|
||||
return error(
|
||||
"Cannot handle non-table options for tempest runtime, "
|
||||
.. vim.inspect(opts)
|
||||
)
|
||||
end
|
||||
|
||||
if type(opts.mkContext) == "function" then
|
||||
context = opts.mkContext(context)
|
||||
end
|
||||
|
|
|
@ -177,7 +177,7 @@ let
|
|||
(thunk /* lua */ "vim.opt.spell = not vim.o.spell")
|
||||
"toggle [s]pell checker")
|
||||
(nmap "<leader>yp"
|
||||
("<cmd>!curl --data-binary @% https://paste.rs<cr>")
|
||||
"<cmd>!curl --data-binary @% https://paste.rs<cr>"
|
||||
"[y]ank [p]aste.rs link")
|
||||
# }}}
|
||||
];
|
||||
|
@ -538,7 +538,7 @@ let
|
|||
event = "VeryLazy";
|
||||
config = true;
|
||||
|
||||
# {{{{ Keybinds
|
||||
# {{{ Keybinds
|
||||
keys =
|
||||
let
|
||||
# {{{ List of fold-related keybinds
|
||||
|
@ -702,21 +702,6 @@ let
|
|||
"[U]ndo tree";
|
||||
};
|
||||
# }}}
|
||||
# {{{ ssr (structured search & replace)
|
||||
ssr = {
|
||||
package = "cshuaimin/ssr.nvim";
|
||||
|
||||
cond = blacklist "vscode";
|
||||
keys = {
|
||||
mode = "nx";
|
||||
mapping = "<leader>rt";
|
||||
action = thunk /* lua */ ''require("ssr").open()'';
|
||||
desc = "[r]eplace [t]emplate";
|
||||
};
|
||||
|
||||
opts.keymaps.replace_all = "<s-cr>";
|
||||
};
|
||||
# }}}
|
||||
# {{{ mini.ai
|
||||
mini-ai = {
|
||||
package = "echasnovski/mini.ai";
|
||||
|
@ -925,7 +910,6 @@ let
|
|||
pkgs.lua
|
||||
] ++
|
||||
optionals nix [
|
||||
pkgs.rnix-lsp
|
||||
pkgs.nil
|
||||
pkgs.nixd
|
||||
] ++
|
||||
|
@ -1036,100 +1020,6 @@ let
|
|||
'';
|
||||
};
|
||||
# }}}
|
||||
# {{{ gitsigns
|
||||
gitsigns = {
|
||||
package = "lewis6991/gitsigns.nvim";
|
||||
|
||||
cond = [ (blacklist [ "vscode" "firenvim" ]) notmp ];
|
||||
event = "BufReadPost";
|
||||
|
||||
opts.on_attach = tempest {
|
||||
mkContext = lua /* lua */
|
||||
"function(bufnr) return { bufnr = bufnr } end";
|
||||
keys =
|
||||
let
|
||||
prefix = m: "<leader>h${m}";
|
||||
gs = "package.loaded.gitsigns";
|
||||
|
||||
# {{{ nmap helper
|
||||
nmap = mapping: action: desc: {
|
||||
inherit desc;
|
||||
mapping = prefix "mapping";
|
||||
action = "${gs}.action";
|
||||
};
|
||||
# }}}
|
||||
# {{{ exprmap helper
|
||||
exprmap = mapping: action: desc: {
|
||||
inherit mapping desc;
|
||||
action = thunk /* lua */ ''
|
||||
if vim.wo.diff then
|
||||
return "${mapping}"
|
||||
end
|
||||
|
||||
vim.schedule(function()
|
||||
${gs}.${action}()
|
||||
end)
|
||||
|
||||
return "<ignore>"
|
||||
'';
|
||||
expr = true;
|
||||
};
|
||||
# }}}
|
||||
in
|
||||
[
|
||||
# {{{ navigation
|
||||
(exprmap "]c" "next_hunk" "Navigate to next hunk")
|
||||
(exprmap "[c" "prev_hunk" "Navigate to previous hunk")
|
||||
# }}}
|
||||
# {{{ actions
|
||||
(nmap "s" "stage_hunk" "[s]tage hunk")
|
||||
(nmap "r" "reset_hunk" "[s]tage hunk")
|
||||
(nmap "S" "stage_buffer" "[s]tage hunk")
|
||||
(nmap "u" "undo_stage_hunk" "[s]tage hunk")
|
||||
(nmap "R" "reset_buffer" "[s]tage hunk")
|
||||
(nmap "p" "preview_hunk" "[s]tage hunk")
|
||||
(nmap "d" "diffthis" "[s]tage hunk")
|
||||
{
|
||||
mapping = prefix "D";
|
||||
action = thunk ''
|
||||
${gs}.diffthis("~")
|
||||
'';
|
||||
desc = "[d]iff file (?)";
|
||||
}
|
||||
{
|
||||
mapping = prefix "b";
|
||||
action = thunk ''
|
||||
${gs}.blame_line({ full = true })
|
||||
'';
|
||||
desc = "[b]lame line";
|
||||
}
|
||||
# }}}
|
||||
# {{{ Toggles
|
||||
(nmap "tb" "toggle_current_line_blame" "[t]oggle line [b]laming")
|
||||
(nmap "td" "toggle_deleted" "[t]oggle [d]eleted")
|
||||
# }}}
|
||||
# {{{ visual mappings
|
||||
{
|
||||
mode = "v";
|
||||
mapping = prefix "s";
|
||||
action = thunk /* lua */ ''
|
||||
${gs}.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
||||
'';
|
||||
desc = "stage visual hunk";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
mapping = prefix "r";
|
||||
action = thunk /* lua */ ''
|
||||
${gs}.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
||||
'';
|
||||
desc = "reset visual hunk";
|
||||
}
|
||||
# }}}
|
||||
];
|
||||
};
|
||||
};
|
||||
# }}}
|
||||
# {{{ cmp
|
||||
cmp = {
|
||||
package = "hrsh7th/nvim-cmp";
|
||||
|
@ -1151,26 +1041,6 @@ let
|
|||
config = importFrom ./plugins/cmp.lua "config";
|
||||
};
|
||||
# }}}
|
||||
# {{{ inc-rename
|
||||
inc-rename = {
|
||||
package = "smjonas/inc-rename.nvim";
|
||||
dependencies.lua = [ "dressing" ];
|
||||
|
||||
cond = blacklist "vscode";
|
||||
event = "VeryLazy";
|
||||
|
||||
opts.input_buffer_type = "dressing";
|
||||
config.autocmds = {
|
||||
event = "LspAttach";
|
||||
group = "CreateIncRenameKeybinds";
|
||||
action.keys = {
|
||||
mapping = "<leader>rn";
|
||||
action = ":IncRename <c-r><c-w>";
|
||||
desc = "Incremenetal [r]e[n]ame";
|
||||
};
|
||||
};
|
||||
};
|
||||
# }}}
|
||||
# }}}
|
||||
# {{{ language support
|
||||
# {{{ haskell support
|
||||
|
|
|
@ -86,8 +86,7 @@ function M.config()
|
|||
},
|
||||
-- }}}
|
||||
-- {{{ Nix
|
||||
rnix = {},
|
||||
-- nil_ls = {},
|
||||
nil_ls = {},
|
||||
nixd = {},
|
||||
-- }}}
|
||||
cssls = {},
|
||||
|
|
|
@ -103,7 +103,6 @@
|
|||
];
|
||||
|
||||
satellite.persistence.at.cache.apps.qbittorrent.directories = [
|
||||
# TODO: investigate which subdirectories/files I actually want to keep
|
||||
"${config.xdg.dataHome}/qBittorrent" # Torrent files, logs, etc
|
||||
];
|
||||
# }}}
|
||||
|
@ -115,7 +114,7 @@
|
|||
# {{{ Steam
|
||||
satellite.persistence.at.state.apps.steam = {
|
||||
directories = [
|
||||
".factorio" # TODO: perhaps this should have it's own file?
|
||||
".factorio"
|
||||
# A couple of games don't play well with bindfs
|
||||
{
|
||||
directory = "${config.xdg.dataHome}/Steam";
|
||||
|
@ -148,5 +147,9 @@
|
|||
# {{{ Sops
|
||||
satellite.persistence.at.state.apps.sops.directories = [ "${config.xdg.configHome}/sops/age" ];
|
||||
# }}}
|
||||
# {{{ QMK
|
||||
home.sessionVariables.QMK_HOME = "${config.xdg.dataHome}/qmk";
|
||||
satellite.persistence.at.state.apps.qmk.directories = [ config.home.sessionVariables.QMK_HOME ];
|
||||
# }}}
|
||||
# }}}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy";
|
||||
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||
|
||||
# TODO: put this in it's own file perhaps?
|
||||
# Taken from [here](https://github.com/fufexan/dotfiles/blob/3b0075fa7a5d38de13c8c32140c4b020b6b32761/home/wayland/default.nix#L14)
|
||||
wl-ocr = pkgs.writeShellScriptBin "wl-ocr" ''
|
||||
${_ pkgs.grim} -g "$(${_ pkgs.slurp})" -t ppm - \
|
||||
|
|
|
@ -4,22 +4,29 @@
|
|||
monitor=,preferred,auto,1
|
||||
|
||||
general {
|
||||
cursor_inactive_timeout = 30 # Hide cursor after being inactive for 30s
|
||||
# cursor_inactive_timeout = 30 # Hide cursor after being inactive for 30s
|
||||
resize_on_border = true # Click on borders with the mouse to resize
|
||||
}
|
||||
|
||||
decoration {
|
||||
blur {
|
||||
popups = true
|
||||
}
|
||||
}
|
||||
|
||||
# Blur extra surfaces
|
||||
layerrule = blur,gtk-layer-shell
|
||||
layerrule = blur,osd
|
||||
layerrule = blur,logout_dialog
|
||||
layerrule = blur,anyrun
|
||||
layerrule = blur,waybar
|
||||
|
||||
layerrule = ignorezero,anyrun
|
||||
layerrule = ignorezero,waybar
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
|
||||
# TODO: standardize the touchpad settings.
|
||||
# Right now I also have similar settings for xorg.
|
||||
touchpad {
|
||||
natural_scroll = true # Invert scrolling direction
|
||||
}
|
||||
|
@ -34,7 +41,7 @@ misc {
|
|||
# Configure the default hyprland branding
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
force_hypr_chan = true
|
||||
# force_hypr_chan = true
|
||||
}
|
||||
|
||||
animations {
|
||||
|
@ -157,11 +164,11 @@ bind=,escape,submap,reset
|
|||
submap=reset
|
||||
# }}}
|
||||
# {{{ Volume & brightness
|
||||
binde=, XF86AudioRaiseVolume, exec, swayosd --output-volume raise
|
||||
binde=, XF86AudioLowerVolume, exec, swayosd --output-volume lower
|
||||
binde=, XF86AudioMute, exec, swayosd --output-volume mute-toggle
|
||||
binde=, XF86AudioMicMute, exec, swayosd --input-volume mute-toggle
|
||||
binde=, XF86MonBrightnessUp, exec, swayosd --brightness raise
|
||||
binde=, XF86MonBrightnessDown, exec, swayosd --brightness lower
|
||||
binde=, XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
|
||||
binde=, XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
|
||||
binde=, XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
||||
binde=, XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
|
||||
binde=, XF86MonBrightnessUp, exec, swayosd-client --brightness raise
|
||||
binde=, XF86MonBrightnessDown, exec, swayosd-client --brightness lower
|
||||
# }}}
|
||||
# }}}
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
{ pkgs, upkgs, lib, config, ... }: {
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./global.nix
|
||||
|
||||
./features/desktop/zathura.nix
|
||||
./features/desktop/spotify.nix
|
||||
./features/desktop/obsidian.nix
|
||||
./features/desktop/foot.nix
|
||||
./features/desktop/firefox
|
||||
./features/desktop/discord
|
||||
./features/cli/productivity
|
||||
./features/cli/pass.nix
|
||||
./features/cli/zellij.nix
|
||||
./features/cli/nix-index.nix
|
||||
./features/cli/catgirl.nix
|
||||
./features/cli/lazygit.nix
|
||||
|
@ -18,14 +20,14 @@
|
|||
|
||||
# Arbitrary extra packages
|
||||
home.packages = with pkgs; [
|
||||
# Desktop apps
|
||||
alacritty
|
||||
# {{{ Communication
|
||||
# signal-desktop # Signal client
|
||||
element-desktop # Matrix client
|
||||
# zoom-us # Zoom client 🤮
|
||||
# }}}
|
||||
# {{{ Editors for different formats
|
||||
# gimp # Image editing
|
||||
gimp # Image editing
|
||||
# lmms # Music software
|
||||
# kicad # PCB editing
|
||||
# libreoffice # Free office suite
|
||||
|
@ -44,8 +46,7 @@
|
|||
# google-chrome # Not my primary browser, but sometimes needed in webdev
|
||||
# plover.dev # steno engine
|
||||
|
||||
# REASON: not available in nixpkgs-stable just yet
|
||||
upkgs.overskride # Bluetooth client
|
||||
overskride # Bluetooth client
|
||||
# }}}
|
||||
# {{{ Media playing/recording
|
||||
mpv # Video player
|
||||
|
|
|
@ -7,7 +7,6 @@ let
|
|||
inputs.disko.nixosModules.default
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.nixos-dns.nixosModules.dns
|
||||
# }}}
|
||||
# {{{ global configuration
|
||||
./cli/fish.nix
|
||||
|
@ -16,6 +15,7 @@ let
|
|||
./services/tailscale.nix
|
||||
./nix.nix
|
||||
./locale.nix
|
||||
./unicode.nix
|
||||
./persistence.nix
|
||||
./ports.nix
|
||||
./wireless
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ config, lib, pkgs, inputs, ... }: {
|
||||
nix = {
|
||||
# Flake support and whatnot
|
||||
package = pkgs.nixUnstable;
|
||||
package = pkgs.lix;
|
||||
|
||||
# Weekly clean up the store, I think
|
||||
gc = {
|
||||
|
@ -32,7 +32,7 @@
|
|||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"repl-flake"
|
||||
# "repl-flake"
|
||||
"auto-allocate-uids"
|
||||
# "configurable-impure-env"
|
||||
];
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# This setups a SSH server.
|
||||
# TODO: persistence
|
||||
{ outputs, config, lib, ... }:
|
||||
let
|
||||
# Record containing all the hosts
|
||||
|
@ -35,10 +34,6 @@ in
|
|||
];
|
||||
};
|
||||
|
||||
# TODO: is this safe? Can we ssh back and gain root access this way?
|
||||
# Passwordless sudo when SSH'ing with keys
|
||||
# security.pam.enableSSHAgentAuth = true;
|
||||
|
||||
# SSH on slow connections
|
||||
programs.mosh.enable = true;
|
||||
|
||||
|
|
11
hosts/nixos/common/global/unicode.nix
Normal file
11
hosts/nixos/common/global/unicode.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
i18n.inputMethod = {
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-gtk
|
||||
fcitx5-configtool
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
# TODO(imperanence): handle persistence
|
||||
{ lib, ... }: {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
|
|
|
@ -20,103 +20,56 @@ let
|
|||
em (unicode —)
|
||||
)
|
||||
;; }}}
|
||||
;; {{{ Chord aliases
|
||||
(defalias
|
||||
chq (chord mainchords q)
|
||||
chw (chord mainchords w)
|
||||
che (chord mainchords e)
|
||||
chr (chord mainchords r)
|
||||
cha (chord mainchords a)
|
||||
chs (chord mainchords s)
|
||||
chd (chord mainchords d)
|
||||
chf (chord mainchords f)
|
||||
chz (chord mainchords z)
|
||||
chx (chord mainchords x)
|
||||
chc (chord mainchords c)
|
||||
chg (chord mainchords g)
|
||||
chh (chord mainchords h)
|
||||
chi (chord mainchords i)
|
||||
chp (chord mainchords p)
|
||||
chj (chord mainchords j)
|
||||
chk (chord mainchords k)
|
||||
chl (chord mainchords l)
|
||||
ch: (chord mainchords :)
|
||||
chn (chord mainchords n)
|
||||
)
|
||||
;; }}}
|
||||
|
||||
(defchords mainchords ${toString chordDelay}
|
||||
;; {{{ Single keys
|
||||
(q) q
|
||||
(w) w
|
||||
(e) e
|
||||
(r) r
|
||||
(a) a
|
||||
(s) s
|
||||
(d) d
|
||||
(f) f
|
||||
(z) z
|
||||
(x) x
|
||||
(c) c
|
||||
(g) g
|
||||
(h) h
|
||||
(i) i
|
||||
(p) p
|
||||
(j) j
|
||||
(k) k
|
||||
(l) l
|
||||
(:) ;
|
||||
(n) n
|
||||
;; }}}
|
||||
(defchordsv2-experimental
|
||||
;; {{{ Left modifiers
|
||||
(a s ) lalt
|
||||
( s d ) lsft
|
||||
( s f) lctl
|
||||
( s d f) C-lsft
|
||||
(a s d ) S-lalt
|
||||
(a s d f) C-S-lalt
|
||||
(a s d f) (multi lctl lalt lsft) ${toString chordDelay} all-released ()
|
||||
(a s d ) (multi lalt lsft) ${toString chordDelay} all-released ()
|
||||
( s d f) (multi lctl lsft) ${toString chordDelay} all-released ()
|
||||
(a s ) lalt ${toString chordDelay} all-released ()
|
||||
( s d ) lsft ${toString chordDelay} all-released ()
|
||||
( s f) lctl ${toString chordDelay} all-released ()
|
||||
;; }}}
|
||||
;; {{{ Right modifiers
|
||||
( l :) ralt
|
||||
( k l ) rsft
|
||||
(j l ) rctl
|
||||
(j k l ) C-rsft
|
||||
( k l :) S-ralt
|
||||
(j k l :) C-S-ralt
|
||||
(j k l ;) (multi rctl ralt rsft) ${toString chordDelay} all-released ()
|
||||
(j k l ) (multi rctl rsft) ${toString chordDelay} all-released ()
|
||||
( k l ;) (multi ralt rsft) ${toString chordDelay} all-released ()
|
||||
(j l ) rctl ${toString chordDelay} all-released ()
|
||||
( k l ) rsft ${toString chordDelay} all-released ()
|
||||
( l ;) ralt ${toString chordDelay} all-released ()
|
||||
;; }}}
|
||||
;; {{{ Special keys
|
||||
(d f) tab
|
||||
(e f) ret
|
||||
(q w) esc
|
||||
(d f) tab ${toString chordDelay} all-released ()
|
||||
(e f) ret ${toString chordDelay} all-released ()
|
||||
(q w) esc ${toString chordDelay} all-released ()
|
||||
|
||||
(g h) bspc
|
||||
(n l) rmet
|
||||
(g h) bspc ${toString chordDelay} all-released ()
|
||||
(n l) rmet ${toString chordDelay} all-released ()
|
||||
|
||||
(j k) f10
|
||||
(c p) f11
|
||||
(j i) f12
|
||||
(j k) f10 ${toString chordDelay} all-released ()
|
||||
(c p) f11 ${toString chordDelay} all-released ()
|
||||
(j i) f12 ${toString chordDelay} all-released ()
|
||||
;; }}}
|
||||
;; {{{ Wm keybinds
|
||||
(n l k) M-p
|
||||
(n l q) M-1
|
||||
(n l w) M-2
|
||||
(n l e) M-3
|
||||
(n l r) M-4
|
||||
(n l a) M-5
|
||||
(n l s) M-6
|
||||
(n l d) M-7
|
||||
(n l f) M-8
|
||||
(n l z) M-9
|
||||
(n l x) M-0
|
||||
(n l k) M-p ${toString chordDelay} all-released ()
|
||||
(n l q) M-1 ${toString chordDelay} all-released ()
|
||||
(n l w) M-2 ${toString chordDelay} all-released ()
|
||||
(n l e) M-3 ${toString chordDelay} all-released ()
|
||||
(n l r) M-4 ${toString chordDelay} all-released ()
|
||||
(n l t) M-5 ${toString chordDelay} all-released ()
|
||||
(n l a) M-6 ${toString chordDelay} all-released ()
|
||||
(n l s) M-7 ${toString chordDelay} all-released ()
|
||||
(n l d) M-8 ${toString chordDelay} all-released ()
|
||||
(n l f) M-9 ${toString chordDelay} all-released ()
|
||||
(n l g) M-0 ${toString chordDelay} all-released ()
|
||||
;; }}}
|
||||
)
|
||||
|
||||
;; {{{ Qwerty
|
||||
(deflayer qwerty
|
||||
XX XX XX XX XX XX XX XX XX XX XX XX XX XX
|
||||
XX @chq @chw @che @chr t y u @chi o @chp XX XX XX
|
||||
XX @cha @chs @chd @chf @chg @chh @chj @chk @chl @ch: XX XX
|
||||
lsft @chz @chx @chc v b @chn m , . ' XX
|
||||
XX q w e r t y u i o p XX XX XX
|
||||
XX a s d f g h j k l ; XX XX
|
||||
lsft z x c v b n m , . ' XX
|
||||
XX lmet @red spc @blue
|
||||
)
|
||||
;; }}}
|
||||
|
@ -167,11 +120,17 @@ let
|
|||
)
|
||||
;; }}}
|
||||
'';
|
||||
|
||||
extraDefCfg = ''
|
||||
concurrent-tap-hold true ;; Required by chords
|
||||
'';
|
||||
in
|
||||
{
|
||||
services.kanata = {
|
||||
enable = true;
|
||||
keyboards.tethysLaptop = {
|
||||
inherit extraDefCfg;
|
||||
|
||||
devices = [ "/dev/input/by-path/platform-i8042-serio-0-event-kbd" ];
|
||||
|
||||
config = mkConfig {
|
||||
|
@ -182,6 +141,8 @@ in
|
|||
};
|
||||
|
||||
keyboards.keychronK6 = {
|
||||
inherit extraDefCfg;
|
||||
|
||||
devices = [ "/dev/input/by-id/usb-Keychron_Keychron_K6-event-kbd" ];
|
||||
|
||||
config = mkConfig {
|
||||
|
|
|
@ -47,8 +47,6 @@
|
|||
# virtualisation.spiceUSBRedirection.enable = true; # This was required for the vm usb passthrough tomfoolery
|
||||
# }}}
|
||||
# {{{ Ad-hoc stylix targets
|
||||
# TODO: include this on all gui hosts
|
||||
# TODO: is this useful outside of home-manager?
|
||||
stylix.targets.gtk.enable = true;
|
||||
# }}}
|
||||
# {{{ Some ad-hoc site blocking
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{
|
||||
imports = with inputs.nixos-hardware.nixosModules; [
|
||||
common-cpu-intel
|
||||
common-gpu-intel
|
||||
# common-gpu-intel # This leads to a "prop ... defined twice" error
|
||||
common-pc-laptop
|
||||
common-pc-ssd
|
||||
./generated.nix
|
||||
|
|
|
@ -20,23 +20,4 @@ This directory contains custom module definitions used throughout my config.
|
|||
| [korora-neovim](./common/korora-neovim.nix) | - | Nix -> neovim config helpers typechecked using [korora](https://github.com/adisbladis/korora) |
|
||||
| [theming](./common/theming.nix) | `satellite.theming` | [stylix](https://github.com/danth/stylix) theming helpers and configuration |
|
||||
| [lua-colorscheme](./common/lua-colorscheme.nix) | `satellite.colorscheme.lua` | Base16 theme to lua module generation |
|
||||
|
||||
## Nixos modules
|
||||
|
||||
| Name | Attribute | Description |
|
||||
| -------------------------------------- | ----------------------- | ------------------------------------------- |
|
||||
| [pounce](./nixos/pounce.nix) | `services.pounce` | Module for pounce & calico configuration |
|
||||
| [nginx](./nixos/nginx.nix) | `satellite.nginx` | Helpers for nginx configuration |
|
||||
| [ports](./nixos/ports.nix) | `satellite.ports` | Global port specification |
|
||||
| [cloudflared](./nixos/cloudflared.nix) | `satellite.cloudflared` | Helpers for cloudflare tunnel configuration |
|
||||
| [pilot](./nixos/pilot.nix) | `satellite.pilot` | Defined the concept of a "main user" |
|
||||
|
||||
## Home-manager modules
|
||||
|
||||
| Name | Attribute | Description |
|
||||
| ------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------- |
|
||||
| [discord](./home-manager/discord.nix) | `programs.discord` | Additional discord options |
|
||||
| [firefox](./home-manager/firefox) | `programs.firefox.apps` | Hacky system for wrapping websites into desktop apps by hiding the firefox tabbar |
|
||||
| [monitors](./home-manager/monitors.nix) | `satellite.monitors` | WM generic monitor configuration |
|
||||
| [persistence](./home-manager/persistence.nix) | `satellite.persistence` | Syntactic wrapper around [impermanence](https://github.com/nix-community/impermanence) |
|
||||
| [satellite-dev](./home-manager/satellite-dev.nix) | `satellite.dev` | Helpers for managing dotfiles which are actively under development |
|
||||
| [octodns](./common/octodns.nix) | `satellite.dns.octodns` | Octodns config generation |
|
||||
|
|
20
modules/common/README.md
Normal file
20
modules/common/README.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Common modules
|
||||
|
||||
## Home-manage & Nixos modules
|
||||
|
||||
| Name | Attribute | Description |
|
||||
| -------------------------------------- | --------------------------- | ----------------------------------- |
|
||||
| [toggles](toggles.nix) | `satellite.toggles` | Generic interface for feature flags |
|
||||
| [lua-lib](lua-lib.nix) | `satellite.lib.lua` | Helpers for working with lua code |
|
||||
| [korora-lua](korora-lua.nix) | - | Nix -> lua encoder |
|
||||
| [korora-neovim](korora-neovim.nix) | - | Nix -> neovim config helpers |
|
||||
| [theming](theming.nix) | `satellite.theming` | Stylix theming helpers |
|
||||
| [lua-colorscheme](lua-colorscheme.nix) | `satellite.colorscheme.lua` | Base16 theme -> lua |
|
||||
|
||||
## Other modules
|
||||
|
||||
These are special-purpose modules that are used for other purposes
|
||||
|
||||
| Name | Attribute | Description |
|
||||
| ---------------------- | ----------------------- | ------------------------- |
|
||||
| [octodns](octodns.nix) | `satellite.dns.octodns` | Octodns config generation |
|
|
@ -157,11 +157,13 @@ let
|
|||
${context}
|
||||
)
|
||||
'';
|
||||
tempestBufnr = given: context: lua ''
|
||||
D.tempest.configure(
|
||||
tempestBufnr = given: lua ''
|
||||
function(_, bufnr)
|
||||
return D.tempest.configure(
|
||||
${encode given},
|
||||
{ bufnr = ${context}}
|
||||
{ bufnr = bufnr}
|
||||
)
|
||||
end
|
||||
'';
|
||||
keymap = mode: mapping: action: desc:
|
||||
{ inherit mode mapping action desc; };
|
||||
|
|
|
@ -7,7 +7,7 @@ in
|
|||
rounding = {
|
||||
# Note: this is automatically set to true when the radius is strictly positive
|
||||
enable = lib.mkEnableOption "rounded corners for desktop apps";
|
||||
radius = lib.mkOption { default = 0.0; type = lib.types.float; };
|
||||
radius = lib.mkOption { default = 0; type = lib.types.int; };
|
||||
};
|
||||
|
||||
# These pretty much directly map onto hypland options
|
||||
|
@ -18,7 +18,7 @@ in
|
|||
passes = lib.mkOption { default = 4; type = lib.types.int; };
|
||||
brightness = lib.mkOption { default = 1.0; type = lib.types.float; };
|
||||
contrast = lib.mkOption { default = 1.2; type = lib.types.float; };
|
||||
size = lib.mkOption { default = 10.0; type = lib.types.float; };
|
||||
size = lib.mkOption { default = 10; type = lib.types.int; };
|
||||
};
|
||||
|
||||
get = lib.mkOption {
|
||||
|
@ -49,7 +49,7 @@ in
|
|||
};
|
||||
|
||||
config.satellite.theming = {
|
||||
rounding.enable = cfg.rounding.radius > 0.0;
|
||||
rounding.enable = cfg.rounding.radius > 0;
|
||||
blur.enable = cfg.blur.passes > 0;
|
||||
|
||||
get = themeMap:
|
||||
|
|
9
modules/home-manager/README.md
Normal file
9
modules/home-manager/README.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Home-manager modules
|
||||
|
||||
| Name | Attribute | Description |
|
||||
| ---------------------------------- | ----------------------- | -------------------------------------------- |
|
||||
| [discord](discord.nix) | `programs.discord` | Additional discord options |
|
||||
| [firefox](firefox) | `programs.firefox.apps` | Hack for wrapping websites into desktop apps |
|
||||
| [monitors](monitors.nix) | `satellite.monitors` | WM generic monitor configuration |
|
||||
| [persistence](persistence.nix) | `satellite.persistence` | Syntactic wrapper around impermanence |
|
||||
| [satellite-dev](satellite-dev.nix) | `satellite.dev` | Manage in-development dotfiles |
|
|
@ -1,54 +0,0 @@
|
|||
{ 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;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,135 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.hyprpaper;
|
||||
toHyprconf = { attrs, indentLevel ? 0, importantPrefixes ? [ "$" ], }:
|
||||
let
|
||||
inherit (lib)
|
||||
all concatMapStringsSep concatStrings concatStringsSep filterAttrs foldl
|
||||
generators hasPrefix isAttrs isList mapAttrsToList replicate;
|
||||
|
||||
initialIndent = concatStrings (replicate indentLevel " ");
|
||||
|
||||
toHyprconf' = indent: attrs:
|
||||
let
|
||||
sections =
|
||||
filterAttrs (n: v: isAttrs v || (isList v && all isAttrs v)) attrs;
|
||||
|
||||
mkSection = n: attrs:
|
||||
if lib.isList attrs then
|
||||
(concatMapStringsSep "\n" (a: mkSection n a) attrs)
|
||||
else ''
|
||||
${indent}${n} {
|
||||
${toHyprconf' " ${indent}" attrs}${indent}}
|
||||
'';
|
||||
|
||||
mkFields = generators.toKeyValue {
|
||||
listsAsDuplicateKeys = true;
|
||||
inherit indent;
|
||||
};
|
||||
|
||||
allFields =
|
||||
filterAttrs (n: v: !(isAttrs v || (isList v && all isAttrs v)))
|
||||
attrs;
|
||||
|
||||
isImportantField = n: _:
|
||||
foldl (acc: prev: if hasPrefix prev n then true else acc) false
|
||||
importantPrefixes;
|
||||
|
||||
importantFields = filterAttrs isImportantField allFields;
|
||||
|
||||
fields = builtins.removeAttrs allFields
|
||||
(mapAttrsToList (n: _: n) importantFields);
|
||||
in
|
||||
mkFields importantFields
|
||||
+ concatStringsSep "\n" (mapAttrsToList mkSection sections)
|
||||
+ mkFields fields;
|
||||
in
|
||||
toHyprconf' initialIndent attrs;
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ maintainers.khaneliman maintainers.fufexan ];
|
||||
|
||||
options.services.hyprpaper = {
|
||||
enable = mkEnableOption "Hyprpaper, Hyprland's wallpaper daemon";
|
||||
|
||||
package = mkPackageOption pkgs "hyprpaper" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = with lib.types;
|
||||
let
|
||||
valueType = nullOr
|
||||
(oneOf [
|
||||
bool
|
||||
int
|
||||
float
|
||||
str
|
||||
path
|
||||
(attrsOf valueType)
|
||||
(listOf valueType)
|
||||
]) // {
|
||||
description = "Hyprpaper configuration value";
|
||||
};
|
||||
in
|
||||
valueType;
|
||||
default = { };
|
||||
description = ''
|
||||
hyprpaper configuration written in Nix. Entries with the same key
|
||||
should be written as lists. Variables' and colors' names should be
|
||||
quoted. See <https://wiki.hyprland.org/Hypr-Ecosystem/hyprpaper/> for more examples.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
ipc = "on";
|
||||
splash = false;
|
||||
splash_offset = 2.0;
|
||||
|
||||
preload =
|
||||
[ "/share/wallpapers/buttons.png" "/share/wallpapers/cat_pacman.png" ];
|
||||
|
||||
wallpaper = [
|
||||
"DP-3,/share/wallpapers/buttons.png"
|
||||
"DP-1,/share/wallpapers/cat_pacman.png"
|
||||
];
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
importantPrefixes = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = [ "$" ];
|
||||
example = [ "$" ];
|
||||
description = ''
|
||||
List of prefix of attributes to source at the top of the config.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
xdg.configFile."hypr/hyprpaper.conf" = mkIf (cfg.settings != { }) {
|
||||
text = toHyprconf {
|
||||
attrs = cfg.settings;
|
||||
inherit (cfg) importantPrefixes;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.hyprpaper = {
|
||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||||
|
||||
Unit = {
|
||||
ConditionEnvironment = "WAYLAND_DISPLAY";
|
||||
Description = "hyprpaper";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
X-Restart-Triggers =
|
||||
[ "${config.xdg.configFile."hypr/hyprpaper.conf".source}" ];
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${getExe cfg.package}";
|
||||
Restart = "always";
|
||||
RestartSec = "10";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{ 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,13 +1,6 @@
|
|||
# (https://nixos.wiki/wiki/Module).
|
||||
|
||||
{
|
||||
# example = import ./example.nix;
|
||||
|
||||
# Modules not yet added to the stable branch
|
||||
bemenu = import ./compat/bemenu.nix;
|
||||
hyprpaper = import ./compat/hyprpaper.nix;
|
||||
k9s = import ./compat/k9s.nix;
|
||||
|
||||
# Personal things
|
||||
dev = import ./dev.nix;
|
||||
firefox = import ./firefox;
|
||||
|
|
11
modules/nixos/README.md
Normal file
11
modules/nixos/README.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Nixos modules
|
||||
|
||||
| Name | Attribute | Description |
|
||||
| ------------------------------------ | ----------------------- | ------------------------------------ |
|
||||
| [pounce](pounce.nix) | `services.pounce` | Pounce & calico configuration |
|
||||
| [nginx](nginx.nix) | `satellite.nginx` | Nginx configuration |
|
||||
| [ports](ports.nix) | `satellite.ports` | Global port specification |
|
||||
| [cloudflared](cloudflared.nix) | `satellite.cloudflared` | Cloudflare tunnel configuration |
|
||||
| [pilot](pilot.nix) | `satellite.pilot` | Defines the concept of a "main user" |
|
||||
| [dns](dns.nix) | `satellite.dns` | DNS record creation |
|
||||
| [dns-assertions](dns-assertions.nix) | `satellite.dns` | DNS record validation |
|
|
@ -91,7 +91,7 @@ in
|
|||
type = "CNAME";
|
||||
zone = cfg.domain;
|
||||
at = subdomain;
|
||||
to = config.networking.hostName;
|
||||
to = "${config.networking.hostName}.${cfg.domain}.";
|
||||
};
|
||||
in lib.attrsets.mapAttrsToList (_: mkDnsRecord) cfg.at;
|
||||
};
|
||||
|
|
|
@ -7,9 +7,6 @@ let plymouthThemes = pkgs.callPackage (import ./plymouth-themes.nix) { }; in
|
|||
# example = pkgs.callPackage (import ./example.nix) {};
|
||||
vimclip = pkgs.callPackage (import ./vimclip.nix) { };
|
||||
homer = pkgs.callPackage (import ./homer.nix) { };
|
||||
|
||||
# REASON: octodns not in nixpkgs 23.11
|
||||
octodns-cloudflare = upkgs.python3Packages.callPackage (import ./octodns-cloudflare.nix) { };
|
||||
|
||||
octodns-cloudflare = pkgs.python3Packages.callPackage (import ./octodns-cloudflare.nix) { };
|
||||
plymouthThemeCutsAlt = plymouthThemes.cuts_alt;
|
||||
}
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
$ORIGIN moonythm.dev. ; designates default origin
|
||||
$TTL 600 ; expiration time in ms
|
||||
|
||||
; ==========================================================================================
|
||||
; Main dns records
|
||||
|
||||
; Actual (tailscale internal) IPs
|
||||
lapetus IN A 100.93.136.59
|
||||
lapetus IN AAAA fd7a:115c:a1e0::e75d:883b
|
||||
|
||||
; lapetus services
|
||||
actual IN CNAME lapetus
|
||||
api.intray IN CNAME lapetus
|
||||
api.smos IN CNAME lapetus
|
||||
cal IN CNAME lapetus
|
||||
diptime IN CNAME lapetus
|
||||
docs.smos IN CNAME lapetus
|
||||
grafana IN CNAME lapetus
|
||||
guacamole IN CNAME lapetus
|
||||
intray IN CNAME lapetus
|
||||
irc IN CNAME lapetus
|
||||
jupyter IN CNAME lapetus
|
||||
lab IN CNAME lapetus
|
||||
lapetus.syncthing IN CNAME lapetus ; TODO: might change this to syncthing.lapetus
|
||||
media IN CNAME lapetus
|
||||
prometheus IN CNAME lapetus
|
||||
qbit IN CNAME lapetus
|
||||
redlib IN CNAME lapetus
|
||||
rss IN CNAME lapetus
|
||||
search IN CNAME lapetus
|
||||
smos IN CNAME lapetus
|
||||
warden IN CNAME lapetus
|
||||
yt IN CNAME lapetus
|
||||
*.irc IN CNAME irc
|
||||
|
||||
; Tunnel used by lapetus
|
||||
tunnel.lapetus IN CNAME 347d9ead-a523-4f8b-bca7-3066e31e2952.cfargotunnel.com.
|
||||
|
||||
; lapetus services using cloudflare tunnels
|
||||
bin IN CNAME tunnel.lapetus
|
||||
git IN CNAME tunnel.lapetus
|
||||
jupyter IN CNAME tunnel.lapetus
|
||||
|
||||
; github pages
|
||||
doffycup IN CNAME prescientmoon.github.io.
|
||||
erratic-gate IN CNAME prescientmoon.github.io.
|
||||
|
||||
; ==========================================================================================
|
||||
; Migadu mail setup
|
||||
|
||||
; Mail MX records
|
||||
@ IN MX 10 aspmx1.migadu.com.
|
||||
@ IN MX 20 aspmx2.migadu.com.
|
||||
orbit IN MX 10 aspmx1.migadu.com.
|
||||
orbit IN MX 20 aspmx2.migadu.com.
|
||||
|
||||
; Mail CNAME records
|
||||
key1._domainkey IN CNAME key1.moonythm.dev._domainkey.migadu.com.
|
||||
key2._domainkey IN CNAME key2.moonythm.dev._domainkey.migadu.com.
|
||||
key3._domainkey IN CNAME key3.moonythm.dev._domainkey.migadu.com.
|
||||
key1._domainkey.orbit IN CNAME key1.orbit.moonythm.dev._domainkey.migadu.com.
|
||||
key2._domainkey.orbit IN CNAME key2.orbit.moonythm.dev._domainkey.migadu.com.
|
||||
key3._domainkey.orbit IN CNAME key3.orbit.moonythm.dev._domainkey.migadu.com.
|
||||
|
||||
; Other mail stuff
|
||||
@ IN TXT "hosted-email-verify=kfkhyexd"
|
||||
@ IN TXT "v=spf1 include:spf.migadu.com -all"
|
||||
_dmarc IN TXT "v=DMARC1; p=quarantine;"
|
||||
orbit IN TXT "hosted-email-verify=24s7lnum"
|
||||
orbit IN TXT "v=spf1 include:spf.migadu.com -all"
|
||||
_dmarc.orbit IN TXT "v=DMARC1; p=quarantine;"
|
Loading…
Reference in a new issue