Update to nixpgks 24.05
This commit is contained in:
parent
5247160b43
commit
a6293a1ba4
|
@ -18,7 +18,7 @@ let
|
||||||
opacity = transparency 0.7;
|
opacity = transparency 0.7;
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
};
|
};
|
||||||
satellite.rounding.radius = 8.0;
|
satellite.rounding.radius = 8;
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Catppuccin latte
|
# {{{ Catppuccin latte
|
||||||
|
@ -29,7 +29,7 @@ let
|
||||||
opacity = transparency 0.7;
|
opacity = transparency 0.7;
|
||||||
polarity = "light";
|
polarity = "light";
|
||||||
};
|
};
|
||||||
satellite.rounding.radius = 8.0;
|
satellite.rounding.radius = 8;
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Catppuccin macchiato
|
# {{{ Catppuccin macchiato
|
||||||
|
@ -40,7 +40,7 @@ let
|
||||||
opacity = transparency 0.7;
|
opacity = transparency 0.7;
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
};
|
};
|
||||||
satellite.rounding.radius = 8.0;
|
satellite.rounding.radius = 8;
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Rosepine dawn
|
# {{{ Rosepine dawn
|
||||||
|
@ -61,12 +61,12 @@ let
|
||||||
opacity = transparency 0.7;
|
opacity = transparency 0.7;
|
||||||
polarity = "light";
|
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.
|
# For this one, I went with a big size, which means the blur just adds a slight gradient to the backgrounds.
|
||||||
satellite.blur = {
|
satellite.blur = {
|
||||||
brightness = 1.05;
|
brightness = 1.05;
|
||||||
size = 25.0;
|
size = 25;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
|
@ -78,7 +78,7 @@ let
|
||||||
opacity = transparency 0.7;
|
opacity = transparency 0.7;
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
};
|
};
|
||||||
satellite.rounding.radius = 8.0;
|
satellite.rounding.radius = 8;
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, self, system, ... }: rec {
|
{ pkgs, self, ... }: rec {
|
||||||
octodns-zones =
|
octodns-zones =
|
||||||
let
|
let
|
||||||
nixosConfigModules = pkgs.lib.mapAttrsToList
|
nixosConfigModules = pkgs.lib.mapAttrsToList
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
octodns-sync =
|
octodns-sync =
|
||||||
pkgs.symlinkJoin {
|
pkgs.symlinkJoin {
|
||||||
name = "octodns-sync";
|
name = "octodns-sync";
|
||||||
paths = [ self.packages.${system}.octodns ];
|
paths = [ self.packages.${pkgs.system}.octodns ];
|
||||||
buildInputs = [ pkgs.makeWrapper pkgs.yq ];
|
buildInputs = [ pkgs.makeWrapper pkgs.yq ];
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
cat ${./octodns.yaml} | yq '.providers.zones.directory="${octodns-zones}"' > $out/config.yaml
|
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
|
||||||
inputs = {
|
inputs = {
|
||||||
# {{{ Nixpkgs instances
|
# {{{ 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";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Additional package repositories
|
# {{{ Additional package repositories
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
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";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
nix-index-database.url = "github:Mic92/nix-index-database";
|
nix-index-database.url = "github:Mic92/nix-index-database";
|
||||||
|
@ -33,9 +33,6 @@
|
||||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
korora.url = "github:adisbladis/korora";
|
korora.url = "github:adisbladis/korora";
|
||||||
|
|
||||||
nixos-dns.url = "github:Janik-Haag/nixos-dns";
|
|
||||||
nixos-dns.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Standalone software
|
# {{{ Standalone software
|
||||||
# {{{ Nightly versions of things
|
# {{{ Nightly versions of things
|
||||||
|
@ -45,15 +42,11 @@
|
||||||
# {{{ Self management
|
# {{{ Self management
|
||||||
# Smos
|
# Smos
|
||||||
smos.url = "github:NorfairKing/smos";
|
smos.url = "github:NorfairKing/smos";
|
||||||
smos.inputs.nixpkgs.url = "github:NixOS/nixpkgs/b8dd8be3c790215716e7c12b247f45ca525867e2";
|
# 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";
|
|
||||||
|
|
||||||
# Intray
|
# Intray
|
||||||
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/fc07dc3bdf2956ddd64f24612ea7fc894933eb2e";
|
||||||
# intray.inputs.home-manager.follows = "home-manager";
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
anyrun.url = "github:Kirottu/anyrun";
|
anyrun.url = "github:Kirottu/anyrun";
|
||||||
|
@ -84,12 +77,7 @@
|
||||||
let
|
let
|
||||||
# {{{ Common helpers
|
# {{{ Common helpers
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
forAllSystems = nixpkgs.lib.genAttrs [
|
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" ];
|
||||||
# "aarch64-linux" TODO: purescript doesn't work on this one
|
|
||||||
"x86_64-linux"
|
|
||||||
"aarch64-darwin"
|
|
||||||
"x86_64-darwin"
|
|
||||||
];
|
|
||||||
|
|
||||||
specialArgs = system: {
|
specialArgs = system: {
|
||||||
inherit inputs outputs;
|
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
|
set fish_cursor_replace_one underscore # Set the replace mode cursor to an underscore
|
||||||
|
|
||||||
# Force fish to skip some checks (I think?)
|
# Force fish to skip some checks (I think?)
|
||||||
# TODO: research why this is here
|
|
||||||
set fish_vi_force_cursor
|
set fish_vi_force_cursor
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Disable greeting
|
# {{{ Disable greeting
|
||||||
|
|
|
@ -7,7 +7,6 @@ let
|
||||||
# C-z to return to background process
|
# C-z to return to background process
|
||||||
"\\cz" = "fg && ${repaint}";
|
"\\cz" = "fg && ${repaint}";
|
||||||
# C-y to yank current command
|
# C-y to yank current command
|
||||||
# TODO: make this work in xorg as well
|
|
||||||
"\\cy" = "wl-copy \$(commandline)";
|
"\\cy" = "wl-copy \$(commandline)";
|
||||||
# C-e to launch $EDITOR
|
# C-e to launch $EDITOR
|
||||||
"\\ce" = "$EDITOR";
|
"\\ce" = "$EDITOR";
|
||||||
|
|
|
@ -1,20 +1,11 @@
|
||||||
{ pkgs, config, ... }:
|
{ 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 = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pinentryFlavor = pinentry.name;
|
pinentryPackage =
|
||||||
|
if config.gtk.enable
|
||||||
|
then pkgs.pinentry-gnome3
|
||||||
|
else pkgs.pinentry-curses;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gpg.enable = true;
|
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;
|
sops.secrets.intray_password.sopsFile = ./secrets.yaml;
|
||||||
|
|
||||||
programs.intray = {
|
programs.intray = {
|
||||||
enable = true;
|
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";
|
data-dir = "${config.satellite.persistence.at.state.home}/intray";
|
||||||
cache-dir = "${config.satellite.persistence.at.cache.home}/intray";
|
cache-dir = "${config.satellite.persistence.at.cache.home}/intray";
|
||||||
config.sync = "AlwaysSync";
|
config.sync = "AlwaysSync";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
let workflowDir = "${config.home.homeDirectory}/productivity/smos";
|
let workflowDir = "${config.home.homeDirectory}/productivity/smos";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -8,6 +8,9 @@ in
|
||||||
programs.smos = {
|
programs.smos = {
|
||||||
inherit workflowDir;
|
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;
|
enable = true;
|
||||||
notify.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!
|
# Use a base16 theme for gtk apps!
|
||||||
stylix.targets.gtk.enable = true;
|
stylix.targets.gtk.enable = true;
|
||||||
|
gtk.enable = true;
|
||||||
|
|
||||||
gtk.iconTheme = {
|
gtk.iconTheme = {
|
||||||
package = pkgs.papirus-icon-theme;
|
package = pkgs.papirus-icon-theme;
|
||||||
|
|
|
@ -288,7 +288,6 @@ in
|
||||||
# {{{ Standalone "apps" which actually run inside a browser.
|
# {{{ Standalone "apps" which actually run inside a browser.
|
||||||
apps.extensions = extensions;
|
apps.extensions = extensions;
|
||||||
apps.app = {
|
apps.app = {
|
||||||
# TODO: auto increment ids
|
|
||||||
# {{{ Desmos
|
# {{{ Desmos
|
||||||
desmos = {
|
desmos = {
|
||||||
url = "https://www.desmos.com/calculator";
|
url = "https://www.desmos.com/calculator";
|
||||||
|
@ -305,23 +304,14 @@ in
|
||||||
id = 2;
|
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 = {
|
||||||
# stylix.targets.firefox = {
|
enable = true;
|
||||||
# enable = true;
|
profileNames = [ config.home.username "desmos" "monkey-type" ];
|
||||||
# profileNames = [ config.home.username "desmos" "monkey-type" "syncthing" ];
|
};
|
||||||
# };
|
|
||||||
|
|
||||||
# {{{ Make firefox the default
|
# {{{ Make firefox the default
|
||||||
# Use firefox as the default browser to open stuff.
|
# 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, ... }: {
|
{ inputs, pkgs, config, ... }: {
|
||||||
home.packages = [ upkgs.wezterm ];
|
home.packages = [pkgs.wezterm ];
|
||||||
|
|
||||||
xdg.configFile."wezterm/nix".source =
|
xdg.configFile."wezterm/nix".source =
|
||||||
config.satellite.lib.lua.writeFile
|
config.satellite.lib.lua.writeFile
|
||||||
|
|
|
@ -178,5 +178,7 @@ config.keys = {
|
||||||
}
|
}
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
|
config.enable_wayland = false
|
||||||
|
|
||||||
-- and finally, return the configuration to wezterm
|
-- and finally, return the configuration to wezterm
|
||||||
return config
|
return config
|
||||||
|
|
|
@ -67,7 +67,6 @@
|
||||||
set statusbar-bg '${base00}'
|
set statusbar-bg '${base00}'
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Highlighting parts of the document (e.g. show search results)
|
# {{{ 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-color '${base03}'
|
||||||
set highlight-active-color '${base06}'
|
set highlight-active-color '${base06}'
|
||||||
# }}}
|
# }}}
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
{
|
{
|
||||||
"clipboard-image": { "branch": "main", "commit": "485de5493d196154db30f85665f8ac480ce116a2" },
|
"clipboard-image": { "branch": "main", "commit": "4ab6f7f1fa4ea97866c0e0f6160f6a36ef174438" },
|
||||||
"cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
"cmp": { "branch": "main", "commit": "7e348da6e5085ac447144a2ef4b637220ba27209" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||||
"cmp-emoji": { "branch": "main", "commit": "19075c36d5820253d32e2478b6aaf3734aeaafa0" },
|
"cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||||
"conform": { "branch": "master", "commit": "192a6d2ddace343f1840a8f72efe2315bd392243" },
|
"conform": { "branch": "master", "commit": "cd75be867f2331b22905f47d28c0c270a69466aa" },
|
||||||
"crates": { "branch": "main", "commit": "ec2b04a380c9f3a8e6ca38c230e4990d71978143" },
|
"crates": { "branch": "main", "commit": "c3fd47391de6999f4c939af89494d08443f71916" },
|
||||||
"discord-rich-presence": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
"discord-rich-presence": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
||||||
"dressing": { "branch": "master", "commit": "6f212262061a2120e42da0d1e87326e8a41c0478" },
|
"dressing": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
|
||||||
"fidget": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
|
"fidget": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
|
||||||
"flash": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
|
"flash": { "branch": "main", "commit": "d0799ae43a581d9f190e182e2a1f389d2887c42a" },
|
||||||
"ftft": { "branch": "master", "commit": "f3e43c9584e14b27f04c27a95a9d9f0e58dfec02" },
|
"ftft": { "branch": "master", "commit": "f3e43c9584e14b27f04c27a95a9d9f0e58dfec02" },
|
||||||
"github-actions": { "branch": "master", "commit": "f2f16243447cea174daa6b4a9ffd3ff9213814ef" },
|
"github-actions": { "branch": "master", "commit": "728374ef59b11a5f5991ea2560d149a4ae33fd22" },
|
||||||
"gitlinker": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
"gitlinker": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
||||||
"gitsigns": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
|
"gitsigns": { "branch": "main", "commit": "e9c4187c3774a46df2d086a66cf3a7e6bea4c432" },
|
||||||
"gruvbox": { "branch": "main", "commit": "6e4027ae957cddf7b193adfaec4a8f9e03b4555f" },
|
"gruvbox": { "branch": "main", "commit": "7a1b23e4edf73a39642e77508ee6b9cbb8c60f9e" },
|
||||||
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
|
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
|
||||||
"haskell-tools": { "branch": "master", "commit": "92e097c6832405fb64e4c44a7ce8bebe7836cae6" },
|
"haskell-tools": { "branch": "master", "commit": "92e097c6832405fb64e4c44a7ce8bebe7836cae6" },
|
||||||
"hyprland": { "branch": "main", "commit": "71760fe0cad972070657b0528f48456f7e0027b2" },
|
"hyprland": { "branch": "main", "commit": "71760fe0cad972070657b0528f48456f7e0027b2" },
|
||||||
"idris": { "branch": "main", "commit": "8bff02984a33264437e70fd9fff4359679d910da" },
|
"idris": { "branch": "main", "commit": "8bff02984a33264437e70fd9fff4359679d910da" },
|
||||||
"inc-rename": { "branch": "main", "commit": "6f9b5f9cb237e12935144cdc535322b8c93c1b25" },
|
"inc-rename": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" },
|
||||||
"indent-blankline": { "branch": "master", "commit": "821a7acd88587d966f7e464b0b3031dfe7f5680c" },
|
"indent-blankline": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
||||||
"lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
|
"lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
|
||||||
"lean": { "branch": "main", "commit": "1a2a2dfbc7e6775e9ec8b84e5eadaf31fde1894e" },
|
"lean": { "branch": "main", "commit": "182703184edb866d7bfe878be358295e189c8223" },
|
||||||
"live-command": { "branch": "main", "commit": "d460067d47948725a6f25b20f31ea8bbfdfe4622" },
|
"live-command": { "branch": "main", "commit": "d460067d47948725a6f25b20f31ea8bbfdfe4622" },
|
||||||
"lspconfig": { "branch": "master", "commit": "16295b79410f131c4fa7870c663b4ace6a761fb2" },
|
"lspconfig": { "branch": "master", "commit": "216deb2d1b5fbf24398919228208649bbf5cbadf" },
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
||||||
"luasnip": { "branch": "master", "commit": "8ae1dedd988eb56441b7858bd1e8554dfadaa46d" },
|
"luasnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||||
"mini.ai": { "branch": "main", "commit": "98e45e6832351354e41e82b32a80ce7537c20746" },
|
"mini.ai": { "branch": "main", "commit": "45587078f323eaf41b9f701bbc04f8d1ab008979" },
|
||||||
"mini.comment": { "branch": "main", "commit": "a4b7e46deb9ad2feb8902cc5dbf087eced112ee5" },
|
"mini.comment": { "branch": "main", "commit": "080f00bb91fea4bab799820bd2ce835a88d0703a" },
|
||||||
"mini.files": { "branch": "main", "commit": "eab771c69b787a3f042dc6505d15613c282aa786" },
|
"mini.files": { "branch": "main", "commit": "acfc4e46f6722a0690ce640632c5b5515ddade70" },
|
||||||
"mini.operators": { "branch": "main", "commit": "0765e4818086e96b8fb55d280e47af781a5bc56a" },
|
"mini.operators": { "branch": "main", "commit": "7d30c0bc5baaa1f0d3a63dd18b35c8581bc164f4" },
|
||||||
"mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" },
|
"mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
|
||||||
"mini.statusline": { "branch": "main", "commit": "dfd3d2ba295473930f78f143852b9b53eb54ae2a" },
|
"mini.statusline": { "branch": "main", "commit": "ec7e2c509c7262fef85a28a772f60ebe146297db" },
|
||||||
"mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" },
|
"mini.surround": { "branch": "main", "commit": "57caca9525cec0ea771a67326b0ee637d056078a" },
|
||||||
"navigator": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
|
"navigator": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
|
||||||
"neoconf": { "branch": "main", "commit": "4ef6c6c5882e7e16209173fb8c47414202843384" },
|
"neoconf": { "branch": "main", "commit": "23f24edab5f78465a0bc3320678e038664b9aa6e" },
|
||||||
"neodev": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
|
"neodev": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||||
"nui": { "branch": "main", "commit": "c3c7fd618dcb5a89e443a2e1033e7d11fdb0596b" },
|
"nui": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||||
"null-ls": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
"null-ls": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
||||||
"plenary": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
|
"plenary": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||||
"purescript": { "branch": "main", "commit": "82348352e6568fcc0385bd7c99a8ead3a479feea" },
|
"purescript": { "branch": "main", "commit": "82348352e6568fcc0385bd7c99a8ead3a479feea" },
|
||||||
"rust-tools": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" },
|
"rust-tools": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" },
|
||||||
"rzip": { "branch": "master", "commit": "f65400fed27b27c7cff7ef8d428c4e5ff749bf28" },
|
"rzip": { "branch": "master", "commit": "f65400fed27b27c7cff7ef8d428c4e5ff749bf28" },
|
||||||
"scrap": { "branch": "main", "commit": "cc8453ed613932c744c3d1ec42f379b78bd8b92c" },
|
"scrap": { "branch": "main", "commit": "cc8453ed613932c744c3d1ec42f379b78bd8b92c" },
|
||||||
"ssr": { "branch": "main", "commit": "bb323ba621ac647b4ac5638b47666e3ef3c279e1" },
|
"ssr": { "branch": "main", "commit": "bb323ba621ac647b4ac5638b47666e3ef3c279e1" },
|
||||||
"telescope": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
"telescope": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
"treesitter": { "branch": "master", "commit": "19bf991be2403c10fa379fa0fb11b7de2560ac31" },
|
"treesitter": { "branch": "master", "commit": "7f4ac678770175cdf0d42c015f4a5b6e18b6cb33" },
|
||||||
"typst": { "branch": "main", "commit": "e28d440c7ba4df2516d7d7f908c4fb664a8cf86c" },
|
"typst": { "branch": "main", "commit": "4d18ced62599ffe5b3c0e5e49566d5456121bc02" },
|
||||||
"undotree": { "branch": "master", "commit": "9dbbf3b7d19dda0d22ceca461818e4739ad8154d" },
|
"undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
|
||||||
"wakatime": { "branch": "master", "commit": "285c2e4e48fb0c63ced233c00fb10a2edb3b6c94" },
|
"wakatime": { "branch": "master", "commit": "3cb40867cb5a3120f9bef76eff88edc7f1dc1a23" },
|
||||||
"web-devicons": { "branch": "master", "commit": "14ac5887110b06b89a96881d534230dac3ed134d" },
|
"web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
"which-key.nvim": { "branch": "main", "commit": "c77cda8cd2f54965e4316699f1d124a2b3bf9d49" }
|
||||||
}
|
}
|
|
@ -130,11 +130,17 @@ function M.configure(opts, context)
|
||||||
opts = opts(context)
|
opts = opts(context)
|
||||||
end
|
end
|
||||||
|
|
||||||
if type(opts) ~= "table" then
|
if opts == nil then
|
||||||
-- TODO: throw
|
|
||||||
return
|
return
|
||||||
end
|
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
|
if type(opts.mkContext) == "function" then
|
||||||
context = opts.mkContext(context)
|
context = opts.mkContext(context)
|
||||||
end
|
end
|
||||||
|
|
|
@ -177,7 +177,7 @@ let
|
||||||
(thunk /* lua */ "vim.opt.spell = not vim.o.spell")
|
(thunk /* lua */ "vim.opt.spell = not vim.o.spell")
|
||||||
"toggle [s]pell checker")
|
"toggle [s]pell checker")
|
||||||
(nmap "<leader>yp"
|
(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")
|
"[y]ank [p]aste.rs link")
|
||||||
# }}}
|
# }}}
|
||||||
];
|
];
|
||||||
|
@ -538,7 +538,7 @@ let
|
||||||
event = "VeryLazy";
|
event = "VeryLazy";
|
||||||
config = true;
|
config = true;
|
||||||
|
|
||||||
# {{{{ Keybinds
|
# {{{ Keybinds
|
||||||
keys =
|
keys =
|
||||||
let
|
let
|
||||||
# {{{ List of fold-related keybinds
|
# {{{ List of fold-related keybinds
|
||||||
|
@ -702,21 +702,6 @@ let
|
||||||
"[U]ndo tree";
|
"[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
|
||||||
mini-ai = {
|
mini-ai = {
|
||||||
package = "echasnovski/mini.ai";
|
package = "echasnovski/mini.ai";
|
||||||
|
@ -925,7 +910,6 @@ let
|
||||||
pkgs.lua
|
pkgs.lua
|
||||||
] ++
|
] ++
|
||||||
optionals nix [
|
optionals nix [
|
||||||
pkgs.rnix-lsp
|
|
||||||
pkgs.nil
|
pkgs.nil
|
||||||
pkgs.nixd
|
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
|
||||||
cmp = {
|
cmp = {
|
||||||
package = "hrsh7th/nvim-cmp";
|
package = "hrsh7th/nvim-cmp";
|
||||||
|
@ -1151,26 +1041,6 @@ let
|
||||||
config = importFrom ./plugins/cmp.lua "config";
|
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
|
# {{{ language support
|
||||||
# {{{ haskell support
|
# {{{ haskell support
|
||||||
|
|
|
@ -86,8 +86,7 @@ function M.config()
|
||||||
},
|
},
|
||||||
-- }}}
|
-- }}}
|
||||||
-- {{{ Nix
|
-- {{{ Nix
|
||||||
rnix = {},
|
nil_ls = {},
|
||||||
-- nil_ls = {},
|
|
||||||
nixd = {},
|
nixd = {},
|
||||||
-- }}}
|
-- }}}
|
||||||
cssls = {},
|
cssls = {},
|
||||||
|
|
|
@ -103,7 +103,6 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
satellite.persistence.at.cache.apps.qbittorrent.directories = [
|
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
|
"${config.xdg.dataHome}/qBittorrent" # Torrent files, logs, etc
|
||||||
];
|
];
|
||||||
# }}}
|
# }}}
|
||||||
|
@ -115,7 +114,7 @@
|
||||||
# {{{ Steam
|
# {{{ Steam
|
||||||
satellite.persistence.at.state.apps.steam = {
|
satellite.persistence.at.state.apps.steam = {
|
||||||
directories = [
|
directories = [
|
||||||
".factorio" # TODO: perhaps this should have it's own file?
|
".factorio"
|
||||||
# A couple of games don't play well with bindfs
|
# A couple of games don't play well with bindfs
|
||||||
{
|
{
|
||||||
directory = "${config.xdg.dataHome}/Steam";
|
directory = "${config.xdg.dataHome}/Steam";
|
||||||
|
@ -148,5 +147,9 @@
|
||||||
# {{{ Sops
|
# {{{ Sops
|
||||||
satellite.persistence.at.state.apps.sops.directories = [ "${config.xdg.configHome}/sops/age" ];
|
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-copy = "${pkgs.wl-clipboard}/bin/wl-copy";
|
||||||
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
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)
|
# Taken from [here](https://github.com/fufexan/dotfiles/blob/3b0075fa7a5d38de13c8c32140c4b020b6b32761/home/wayland/default.nix#L14)
|
||||||
wl-ocr = pkgs.writeShellScriptBin "wl-ocr" ''
|
wl-ocr = pkgs.writeShellScriptBin "wl-ocr" ''
|
||||||
${_ pkgs.grim} -g "$(${_ pkgs.slurp})" -t ppm - \
|
${_ pkgs.grim} -g "$(${_ pkgs.slurp})" -t ppm - \
|
||||||
|
|
|
@ -4,22 +4,29 @@
|
||||||
monitor=,preferred,auto,1
|
monitor=,preferred,auto,1
|
||||||
|
|
||||||
general {
|
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
|
resize_on_border = true # Click on borders with the mouse to resize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
blur {
|
||||||
|
popups = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Blur extra surfaces
|
# Blur extra surfaces
|
||||||
layerrule = blur,gtk-layer-shell
|
layerrule = blur,gtk-layer-shell
|
||||||
|
layerrule = blur,osd
|
||||||
|
layerrule = blur,logout_dialog
|
||||||
layerrule = blur,anyrun
|
layerrule = blur,anyrun
|
||||||
layerrule = blur,waybar
|
layerrule = blur,waybar
|
||||||
|
|
||||||
layerrule = ignorezero,anyrun
|
layerrule = ignorezero,anyrun
|
||||||
layerrule = ignorezero,waybar
|
layerrule = ignorezero,waybar
|
||||||
|
|
||||||
input {
|
input {
|
||||||
kb_layout = us
|
kb_layout = us
|
||||||
|
|
||||||
# TODO: standardize the touchpad settings.
|
|
||||||
# Right now I also have similar settings for xorg.
|
|
||||||
touchpad {
|
touchpad {
|
||||||
natural_scroll = true # Invert scrolling direction
|
natural_scroll = true # Invert scrolling direction
|
||||||
}
|
}
|
||||||
|
@ -34,7 +41,7 @@ misc {
|
||||||
# Configure the default hyprland branding
|
# Configure the default hyprland branding
|
||||||
disable_hyprland_logo = true
|
disable_hyprland_logo = true
|
||||||
disable_splash_rendering = true
|
disable_splash_rendering = true
|
||||||
force_hypr_chan = true
|
# force_hypr_chan = true
|
||||||
}
|
}
|
||||||
|
|
||||||
animations {
|
animations {
|
||||||
|
@ -157,11 +164,11 @@ bind=,escape,submap,reset
|
||||||
submap=reset
|
submap=reset
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Volume & brightness
|
# {{{ Volume & brightness
|
||||||
binde=, XF86AudioRaiseVolume, exec, swayosd --output-volume raise
|
binde=, XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
|
||||||
binde=, XF86AudioLowerVolume, exec, swayosd --output-volume lower
|
binde=, XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
|
||||||
binde=, XF86AudioMute, exec, swayosd --output-volume mute-toggle
|
binde=, XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
||||||
binde=, XF86AudioMicMute, exec, swayosd --input-volume mute-toggle
|
binde=, XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
|
||||||
binde=, XF86MonBrightnessUp, exec, swayosd --brightness raise
|
binde=, XF86MonBrightnessUp, exec, swayosd-client --brightness raise
|
||||||
binde=, XF86MonBrightnessDown, exec, swayosd --brightness lower
|
binde=, XF86MonBrightnessDown, exec, swayosd-client --brightness lower
|
||||||
# }}}
|
# }}}
|
||||||
# }}}
|
# }}}
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
{ pkgs, upkgs, lib, config, ... }: {
|
{ pkgs, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./global.nix
|
./global.nix
|
||||||
|
|
||||||
./features/desktop/zathura.nix
|
./features/desktop/zathura.nix
|
||||||
./features/desktop/spotify.nix
|
./features/desktop/spotify.nix
|
||||||
./features/desktop/obsidian.nix
|
./features/desktop/obsidian.nix
|
||||||
|
./features/desktop/foot.nix
|
||||||
./features/desktop/firefox
|
./features/desktop/firefox
|
||||||
./features/desktop/discord
|
./features/desktop/discord
|
||||||
./features/cli/productivity
|
./features/cli/productivity
|
||||||
./features/cli/pass.nix
|
./features/cli/pass.nix
|
||||||
|
./features/cli/zellij.nix
|
||||||
./features/cli/nix-index.nix
|
./features/cli/nix-index.nix
|
||||||
./features/cli/catgirl.nix
|
./features/cli/catgirl.nix
|
||||||
./features/cli/lazygit.nix
|
./features/cli/lazygit.nix
|
||||||
|
@ -18,14 +20,14 @@
|
||||||
|
|
||||||
# Arbitrary extra packages
|
# Arbitrary extra packages
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Desktop apps
|
alacritty
|
||||||
# {{{ Communication
|
# {{{ Communication
|
||||||
# signal-desktop # Signal client
|
# signal-desktop # Signal client
|
||||||
element-desktop # Matrix client
|
element-desktop # Matrix client
|
||||||
# zoom-us # Zoom client 🤮
|
# zoom-us # Zoom client 🤮
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Editors for different formats
|
# {{{ Editors for different formats
|
||||||
# gimp # Image editing
|
gimp # Image editing
|
||||||
# lmms # Music software
|
# lmms # Music software
|
||||||
# kicad # PCB editing
|
# kicad # PCB editing
|
||||||
# libreoffice # Free office suite
|
# libreoffice # Free office suite
|
||||||
|
@ -44,8 +46,7 @@
|
||||||
# google-chrome # Not my primary browser, but sometimes needed in webdev
|
# google-chrome # Not my primary browser, but sometimes needed in webdev
|
||||||
# plover.dev # steno engine
|
# plover.dev # steno engine
|
||||||
|
|
||||||
# REASON: not available in nixpkgs-stable just yet
|
overskride # Bluetooth client
|
||||||
upkgs.overskride # Bluetooth client
|
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Media playing/recording
|
# {{{ Media playing/recording
|
||||||
mpv # Video player
|
mpv # Video player
|
||||||
|
|
|
@ -7,7 +7,6 @@ let
|
||||||
inputs.disko.nixosModules.default
|
inputs.disko.nixosModules.default
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
inputs.nixos-dns.nixosModules.dns
|
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ global configuration
|
# {{{ global configuration
|
||||||
./cli/fish.nix
|
./cli/fish.nix
|
||||||
|
@ -16,6 +15,7 @@ let
|
||||||
./services/tailscale.nix
|
./services/tailscale.nix
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./locale.nix
|
./locale.nix
|
||||||
|
./unicode.nix
|
||||||
./persistence.nix
|
./persistence.nix
|
||||||
./ports.nix
|
./ports.nix
|
||||||
./wireless
|
./wireless
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, inputs, ... }: {
|
{ config, lib, pkgs, inputs, ... }: {
|
||||||
nix = {
|
nix = {
|
||||||
# Flake support and whatnot
|
# Flake support and whatnot
|
||||||
package = pkgs.nixUnstable;
|
package = pkgs.lix;
|
||||||
|
|
||||||
# Weekly clean up the store, I think
|
# Weekly clean up the store, I think
|
||||||
gc = {
|
gc = {
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
"flakes"
|
"flakes"
|
||||||
"repl-flake"
|
# "repl-flake"
|
||||||
"auto-allocate-uids"
|
"auto-allocate-uids"
|
||||||
# "configurable-impure-env"
|
# "configurable-impure-env"
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# This setups a SSH server.
|
# This setups a SSH server.
|
||||||
# TODO: persistence
|
|
||||||
{ outputs, config, lib, ... }:
|
{ outputs, config, lib, ... }:
|
||||||
let
|
let
|
||||||
# Record containing all the hosts
|
# 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
|
# SSH on slow connections
|
||||||
programs.mosh.enable = true;
|
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, ... }: {
|
{ lib, ... }: {
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -20,103 +20,56 @@ let
|
||||||
em (unicode —)
|
em (unicode —)
|
||||||
)
|
)
|
||||||
;; }}}
|
;; }}}
|
||||||
;; {{{ Chord aliases
|
(defchordsv2-experimental
|
||||||
(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
|
|
||||||
;; }}}
|
|
||||||
;; {{{ Left modifiers
|
;; {{{ Left modifiers
|
||||||
(a s ) lalt
|
(a s d f) (multi lctl lalt lsft) ${toString chordDelay} all-released ()
|
||||||
( s d ) lsft
|
(a s d ) (multi lalt lsft) ${toString chordDelay} all-released ()
|
||||||
( s f) lctl
|
( s d f) (multi lctl lsft) ${toString chordDelay} all-released ()
|
||||||
( s d f) C-lsft
|
(a s ) lalt ${toString chordDelay} all-released ()
|
||||||
(a s d ) S-lalt
|
( s d ) lsft ${toString chordDelay} all-released ()
|
||||||
(a s d f) C-S-lalt
|
( s f) lctl ${toString chordDelay} all-released ()
|
||||||
;; }}}
|
;; }}}
|
||||||
;; {{{ Right modifiers
|
;; {{{ Right modifiers
|
||||||
( l :) ralt
|
(j k l ;) (multi rctl ralt rsft) ${toString chordDelay} all-released ()
|
||||||
( k l ) rsft
|
(j k l ) (multi rctl rsft) ${toString chordDelay} all-released ()
|
||||||
(j l ) rctl
|
( k l ;) (multi ralt rsft) ${toString chordDelay} all-released ()
|
||||||
(j k l ) C-rsft
|
(j l ) rctl ${toString chordDelay} all-released ()
|
||||||
( k l :) S-ralt
|
( k l ) rsft ${toString chordDelay} all-released ()
|
||||||
(j k l :) C-S-ralt
|
( l ;) ralt ${toString chordDelay} all-released ()
|
||||||
;; }}}
|
;; }}}
|
||||||
;; {{{ Special keys
|
;; {{{ Special keys
|
||||||
(d f) tab
|
(d f) tab ${toString chordDelay} all-released ()
|
||||||
(e f) ret
|
(e f) ret ${toString chordDelay} all-released ()
|
||||||
(q w) esc
|
(q w) esc ${toString chordDelay} all-released ()
|
||||||
|
|
||||||
(g h) bspc
|
(g h) bspc ${toString chordDelay} all-released ()
|
||||||
(n l) rmet
|
(n l) rmet ${toString chordDelay} all-released ()
|
||||||
|
|
||||||
(j k) f10
|
(j k) f10 ${toString chordDelay} all-released ()
|
||||||
(c p) f11
|
(c p) f11 ${toString chordDelay} all-released ()
|
||||||
(j i) f12
|
(j i) f12 ${toString chordDelay} all-released ()
|
||||||
;; }}}
|
;; }}}
|
||||||
;; {{{ Wm keybinds
|
;; {{{ Wm keybinds
|
||||||
(n l k) M-p
|
(n l k) M-p ${toString chordDelay} all-released ()
|
||||||
(n l q) M-1
|
(n l q) M-1 ${toString chordDelay} all-released ()
|
||||||
(n l w) M-2
|
(n l w) M-2 ${toString chordDelay} all-released ()
|
||||||
(n l e) M-3
|
(n l e) M-3 ${toString chordDelay} all-released ()
|
||||||
(n l r) M-4
|
(n l r) M-4 ${toString chordDelay} all-released ()
|
||||||
(n l a) M-5
|
(n l t) M-5 ${toString chordDelay} all-released ()
|
||||||
(n l s) M-6
|
(n l a) M-6 ${toString chordDelay} all-released ()
|
||||||
(n l d) M-7
|
(n l s) M-7 ${toString chordDelay} all-released ()
|
||||||
(n l f) M-8
|
(n l d) M-8 ${toString chordDelay} all-released ()
|
||||||
(n l z) M-9
|
(n l f) M-9 ${toString chordDelay} all-released ()
|
||||||
(n l x) M-0
|
(n l g) M-0 ${toString chordDelay} all-released ()
|
||||||
;; }}}
|
;; }}}
|
||||||
)
|
)
|
||||||
|
|
||||||
;; {{{ Qwerty
|
;; {{{ Qwerty
|
||||||
(deflayer qwerty
|
(deflayer qwerty
|
||||||
XX XX XX XX XX XX XX XX XX XX XX XX XX XX
|
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 q w e r t y u i o p XX XX XX
|
||||||
XX @cha @chs @chd @chf @chg @chh @chj @chk @chl @ch: XX XX
|
XX a s d f g h j k l ; XX XX
|
||||||
lsft @chz @chx @chc v b @chn m , . ' XX
|
lsft z x c v b n m , . ' XX
|
||||||
XX lmet @red spc @blue
|
XX lmet @red spc @blue
|
||||||
)
|
)
|
||||||
;; }}}
|
;; }}}
|
||||||
|
@ -167,11 +120,17 @@ let
|
||||||
)
|
)
|
||||||
;; }}}
|
;; }}}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
extraDefCfg = ''
|
||||||
|
concurrent-tap-hold true ;; Required by chords
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.kanata = {
|
services.kanata = {
|
||||||
enable = true;
|
enable = true;
|
||||||
keyboards.tethysLaptop = {
|
keyboards.tethysLaptop = {
|
||||||
|
inherit extraDefCfg;
|
||||||
|
|
||||||
devices = [ "/dev/input/by-path/platform-i8042-serio-0-event-kbd" ];
|
devices = [ "/dev/input/by-path/platform-i8042-serio-0-event-kbd" ];
|
||||||
|
|
||||||
config = mkConfig {
|
config = mkConfig {
|
||||||
|
@ -182,6 +141,8 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
keyboards.keychronK6 = {
|
keyboards.keychronK6 = {
|
||||||
|
inherit extraDefCfg;
|
||||||
|
|
||||||
devices = [ "/dev/input/by-id/usb-Keychron_Keychron_K6-event-kbd" ];
|
devices = [ "/dev/input/by-id/usb-Keychron_Keychron_K6-event-kbd" ];
|
||||||
|
|
||||||
config = mkConfig {
|
config = mkConfig {
|
||||||
|
|
|
@ -47,8 +47,6 @@
|
||||||
# virtualisation.spiceUSBRedirection.enable = true; # This was required for the vm usb passthrough tomfoolery
|
# virtualisation.spiceUSBRedirection.enable = true; # This was required for the vm usb passthrough tomfoolery
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Ad-hoc stylix targets
|
# {{{ Ad-hoc stylix targets
|
||||||
# TODO: include this on all gui hosts
|
|
||||||
# TODO: is this useful outside of home-manager?
|
|
||||||
stylix.targets.gtk.enable = true;
|
stylix.targets.gtk.enable = true;
|
||||||
# }}}
|
# }}}
|
||||||
# {{{ Some ad-hoc site blocking
|
# {{{ Some ad-hoc site blocking
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
{
|
{
|
||||||
imports = with inputs.nixos-hardware.nixosModules; [
|
imports = with inputs.nixos-hardware.nixosModules; [
|
||||||
common-cpu-intel
|
common-cpu-intel
|
||||||
common-gpu-intel
|
# common-gpu-intel # This leads to a "prop ... defined twice" error
|
||||||
common-pc-laptop
|
common-pc-laptop
|
||||||
common-pc-ssd
|
common-pc-ssd
|
||||||
./generated.nix
|
./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) |
|
| [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 |
|
| [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 |
|
| [lua-colorscheme](./common/lua-colorscheme.nix) | `satellite.colorscheme.lua` | Base16 theme to lua module generation |
|
||||||
|
| [octodns](./common/octodns.nix) | `satellite.dns.octodns` | Octodns config 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 |
|
|
||||||
|
|
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}
|
${context}
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
tempestBufnr = given: context: lua ''
|
tempestBufnr = given: lua ''
|
||||||
D.tempest.configure(
|
function(_, bufnr)
|
||||||
|
return D.tempest.configure(
|
||||||
${encode given},
|
${encode given},
|
||||||
{ bufnr = ${context}}
|
{ bufnr = bufnr}
|
||||||
)
|
)
|
||||||
|
end
|
||||||
'';
|
'';
|
||||||
keymap = mode: mapping: action: desc:
|
keymap = mode: mapping: action: desc:
|
||||||
{ inherit mode mapping action desc; };
|
{ inherit mode mapping action desc; };
|
||||||
|
|
|
@ -7,7 +7,7 @@ in
|
||||||
rounding = {
|
rounding = {
|
||||||
# Note: this is automatically set to true when the radius is strictly positive
|
# Note: this is automatically set to true when the radius is strictly positive
|
||||||
enable = lib.mkEnableOption "rounded corners for desktop apps";
|
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
|
# These pretty much directly map onto hypland options
|
||||||
|
@ -18,7 +18,7 @@ in
|
||||||
passes = lib.mkOption { default = 4; type = lib.types.int; };
|
passes = lib.mkOption { default = 4; type = lib.types.int; };
|
||||||
brightness = lib.mkOption { default = 1.0; type = lib.types.float; };
|
brightness = lib.mkOption { default = 1.0; type = lib.types.float; };
|
||||||
contrast = lib.mkOption { default = 1.2; 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 {
|
get = lib.mkOption {
|
||||||
|
@ -49,7 +49,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config.satellite.theming = {
|
config.satellite.theming = {
|
||||||
rounding.enable = cfg.rounding.radius > 0.0;
|
rounding.enable = cfg.rounding.radius > 0;
|
||||||
blur.enable = cfg.blur.passes > 0;
|
blur.enable = cfg.blur.passes > 0;
|
||||||
|
|
||||||
get = themeMap:
|
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).
|
# (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
|
# Personal things
|
||||||
dev = import ./dev.nix;
|
dev = import ./dev.nix;
|
||||||
firefox = import ./firefox;
|
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";
|
type = "CNAME";
|
||||||
zone = cfg.domain;
|
zone = cfg.domain;
|
||||||
at = subdomain;
|
at = subdomain;
|
||||||
to = config.networking.hostName;
|
to = "${config.networking.hostName}.${cfg.domain}.";
|
||||||
};
|
};
|
||||||
in lib.attrsets.mapAttrsToList (_: mkDnsRecord) cfg.at;
|
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) {};
|
# example = pkgs.callPackage (import ./example.nix) {};
|
||||||
vimclip = pkgs.callPackage (import ./vimclip.nix) { };
|
vimclip = pkgs.callPackage (import ./vimclip.nix) { };
|
||||||
homer = pkgs.callPackage (import ./homer.nix) { };
|
homer = pkgs.callPackage (import ./homer.nix) { };
|
||||||
|
octodns-cloudflare = pkgs.python3Packages.callPackage (import ./octodns-cloudflare.nix) { };
|
||||||
# REASON: octodns not in nixpkgs 23.11
|
|
||||||
octodns-cloudflare = upkgs.python3Packages.callPackage (import ./octodns-cloudflare.nix) { };
|
|
||||||
|
|
||||||
plymouthThemeCutsAlt = plymouthThemes.cuts_alt;
|
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