mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 17:17:22 +01:00
Compare commits
No commits in common. "64e6a9c1599004c002e4c12926898ba5232fb513" and "35f108e3fcc6ee620db080ee74cb30b7c6c59117" have entirely different histories.
64e6a9c159
...
35f108e3fc
21 changed files with 888 additions and 1089 deletions
|
|
@ -943,7 +943,7 @@ The rest of the outputs either define or help define the actual configurations:
|
||||||
modules = [
|
modules = [
|
||||||
inputs.niri-flake.homeModules.niri
|
inputs.niri-flake.homeModules.niri
|
||||||
inputs.nix-index-database.homeModules.nix-index
|
inputs.nix-index-database.homeModules.nix-index
|
||||||
# inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.spicetify-nix.homeManagerModules.default
|
inputs.spicetify-nix.homeManagerModules.default
|
||||||
inputs.swarsel-nix.homeModules.default
|
inputs.swarsel-nix.homeModules.default
|
||||||
"${self}/hosts/${type}/${configName}"
|
"${self}/hosts/${type}/${configName}"
|
||||||
|
|
@ -1249,11 +1249,9 @@ Lastly, in the =perSystem= attribute set, we see that it is actually passed some
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
devshells.default = let
|
devshells.default = {
|
||||||
nix-version = "2_30";
|
|
||||||
in {
|
|
||||||
packages = [
|
packages = [
|
||||||
(builtins.trace "alarm: pinned nix_${nix-version}" pkgs.nixVersions."nix_${nix-version}")
|
(builtins.trace "alarm: we pinned nix_2_28 because of https://github.com/shlevy/nix-plugins/issues/20" pkgs.nixVersions.nix_2_28) # Always use the nix version from this flake's nixpkgs version, so that nix-plugins (below) doesn't fail because of different nix versions.
|
||||||
pkgs.git
|
pkgs.git
|
||||||
pkgs.just
|
pkgs.just
|
||||||
pkgs.age
|
pkgs.age
|
||||||
|
|
@ -1289,12 +1287,12 @@ Lastly, in the =perSystem= attribute set, we see that it is actually passed some
|
||||||
{
|
{
|
||||||
package = pkgs.nix-output-monitor;
|
package = pkgs.nix-output-monitor;
|
||||||
help = "Nix Output Monitor (a drop-in alternative for `nix` which shows a build graph)";
|
help = "Nix Output Monitor (a drop-in alternative for `nix` which shows a build graph)";
|
||||||
name = "nom \"$@\"";
|
name = "nom";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "hm";
|
name = "hm";
|
||||||
help = "Manage home-manager config";
|
help = "Manage home-manager config";
|
||||||
command = "home-manager \"$@\"";
|
command = "home-manager";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fmt";
|
name = "fmt";
|
||||||
|
|
@ -1319,7 +1317,7 @@ Lastly, in the =perSystem= attribute set, we see that it is actually passed some
|
||||||
{
|
{
|
||||||
name = "bld";
|
name = "bld";
|
||||||
help = "Build a number of configurations";
|
help = "Build a number of configurations";
|
||||||
command = "swarsel-build \"$@\"";
|
command = "swarel-build \"$@\"";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "c";
|
name = "c";
|
||||||
|
|
@ -1330,17 +1328,13 @@ Lastly, in the =perSystem= attribute set, we see that it is actually passed some
|
||||||
|
|
||||||
devshell.startup.pre-commit-install.text = "pre-commit install";
|
devshell.startup.pre-commit-install.text = "pre-commit install";
|
||||||
|
|
||||||
env = let
|
env = [
|
||||||
nix-plugins = pkgs.nix-plugins.override {
|
|
||||||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
|
||||||
};
|
|
||||||
in [
|
|
||||||
{
|
{
|
||||||
# Additionally configure nix-plugins with our extra builtins file.
|
# Additionally configure nix-plugins with our extra builtins file.
|
||||||
# We need this for our repo secrets.
|
# We need this for our repo secrets.
|
||||||
name = "NIX_CONFIG";
|
name = "NIX_CONFIG";
|
||||||
value = ''
|
value = ''
|
||||||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
plugin-files = ${pkgs.nix-plugins}/lib/nix/plugins
|
||||||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
@ -2627,8 +2621,8 @@ My phone. I use only a minimal config for remote debugging here.
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.stylix.homeModules.stylix
|
inputs.stylix.homeManagerModules.stylix
|
||||||
# inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.nix-index-database.homeModules.nix-index
|
inputs.nix-index-database.homeModules.nix-index
|
||||||
"${self}/modules/home"
|
"${self}/modules/home"
|
||||||
"${self}/modules/nixos/common/pii.nix"
|
"${self}/modules/nixos/common/pii.nix"
|
||||||
|
|
@ -4201,12 +4195,8 @@ A breakdown of the flags being set:
|
||||||
sopsFile = "${config.swarselsystems.flakePath}/secrets/general/secrets.yaml";
|
sopsFile = "${config.swarselsystems.flakePath}/secrets/general/secrets.yaml";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix =
|
nix = {
|
||||||
let
|
package = pkgs.nixVersions.nix_2_28;
|
||||||
nix-version = "2_30";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
package = pkgs.nixVersions."nix_${nix-version}";
|
|
||||||
settings = {
|
settings = {
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
|
|
@ -4223,22 +4213,11 @@ A breakdown of the flags being set:
|
||||||
# '' + lib.optionalString (!minimal) ''
|
# '' + lib.optionalString (!minimal) ''
|
||||||
# !include ${config.sops.secrets.github-api-token.path}
|
# !include ${config.sops.secrets.github-api-token.path}
|
||||||
# '';
|
# '';
|
||||||
# extraOptions = ''
|
extraOptions = ''
|
||||||
# plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
|
plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
|
||||||
# buildInputs = [config.nix.package pkgs.boost];
|
buildInputs = [config.nix.package pkgs.boost];
|
||||||
# patches = o.patches or [];
|
patches = o.patches or [];
|
||||||
# })}/lib/nix/plugins
|
})}/lib/nix/plugins
|
||||||
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
|
||||||
# '';
|
|
||||||
|
|
||||||
extraOptions =
|
|
||||||
let
|
|
||||||
nix-plugins = pkgs.nix-plugins.override {
|
|
||||||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
''
|
|
||||||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
|
||||||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
'' + lib.optionalString (!minimal) ''
|
'' + lib.optionalString (!minimal) ''
|
||||||
!include ${config.sops.secrets.github-api-token.path}
|
!include ${config.sops.secrets.github-api-token.path}
|
||||||
|
|
@ -5788,13 +5767,12 @@ This section houses the greetd related settings. I do not really want to use a d
|
||||||
settings = {
|
settings = {
|
||||||
# initial_session.command = "sway";
|
# initial_session.command = "sway";
|
||||||
initial_session.command = "uwsm start -- sway-uwsm.desktop";
|
initial_session.command = "uwsm start -- sway-uwsm.desktop";
|
||||||
# --cmd sway
|
|
||||||
default_session.command = ''
|
default_session.command = ''
|
||||||
${pkgs.tuigreet}/bin/tuigreet \
|
${pkgs.tuigreet}/bin/tuigreet \
|
||||||
--time \
|
--time \
|
||||||
--asterisks \
|
--asterisks \
|
||||||
--user-menu \
|
--user-menu \
|
||||||
--cmd "uwsm start -- sway-uwsm.desktop"
|
--cmd sway
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -11049,22 +11027,18 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
||||||
config = let
|
config = lib.mkIf config.swarselmodules.general {
|
||||||
nix-version = "2_30";
|
|
||||||
in lib.mkIf config.swarselmodules.general {
|
|
||||||
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
package = lib.mkForce pkgs.nixVersions."nix_${nix-version}";
|
package = lib.mkForce pkgs.nixVersions.nix_2_28;
|
||||||
# extraOptions = ''
|
# extraOptions = ''
|
||||||
# plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins
|
# plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins
|
||||||
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
# '';
|
# '';
|
||||||
extraOptions = let
|
extraOptions = ''
|
||||||
nix-plugins = pkgs.nix-plugins.override {
|
plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
|
||||||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
buildInputs = [config.nix.package pkgs.boost];
|
||||||
};
|
patches = o.patches or [];
|
||||||
in
|
})}/lib/nix/plugins
|
||||||
''
|
|
||||||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
|
||||||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
'';
|
'';
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -11134,7 +11108,7 @@ It can be set to either:
|
||||||
- a PCI id in the form =vendor_id:device_id=
|
- a PCI id in the form =vendor_id:device_id=
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/nixgl.nix
|
#+begin_src nix-ts :tangle modules/home/common/nixgl.nix
|
||||||
{ lib, config, inputs, ... }:
|
{ lib, config, nixgl, ... }:
|
||||||
{
|
{
|
||||||
options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings";
|
options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
|
|
@ -11146,11 +11120,11 @@ It can be set to either:
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselmodules.nixgl {
|
config = lib.mkIf config.swarselmodules.nixgl {
|
||||||
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
inherit (inputs.nixgl) packages;
|
inherit (nixgl) packages;
|
||||||
defaultWrapper = lib.mkDefault "mesa";
|
defaultWrapper = lib.mkDefault "mesa";
|
||||||
vulkan.enable = lib.mkDefault false;
|
vulkan.enable = lib.mkDefault false;
|
||||||
prime = lib.mkIf config.swarselsystems.isSecondaryGpu {
|
prime = lib.mkIf config.swarselsystem.isSecondaryGpu {
|
||||||
card = config.swarselsystems.secondaryGpuCard;
|
card = config.swarselsystem.secondaryGpuCard;
|
||||||
installScript = "mesa";
|
installScript = "mesa";
|
||||||
};
|
};
|
||||||
offloadWrapper = lib.mkIf config.swarselsystem.isSecondaryGpu "mesaPrime";
|
offloadWrapper = lib.mkIf config.swarselsystem.isSecondaryGpu "mesaPrime";
|
||||||
|
|
@ -11433,13 +11407,13 @@ I use sops-nix to handle secrets that I want to have available on my machines at
|
||||||
Since we are using the home-manager implementation here, we need to specify the runtime path.
|
Since we are using the home-manager implementation here, we need to specify the runtime path.
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/sops.nix
|
#+begin_src nix-ts :tangle modules/home/common/sops.nix
|
||||||
{ config, lib, inputs, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.sops = lib.mkEnableOption "sops settings";
|
options.swarselmodules.sops = lib.mkEnableOption "sops settings";
|
||||||
config = lib.optionalAttrs (inputs ? sops) {
|
config = lib.mkIf config.swarselmodules.sops {
|
||||||
sops = {
|
sops = {
|
||||||
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
||||||
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
||||||
|
|
@ -11456,14 +11430,18 @@ I use sops-nix to handle secrets that I want to have available on my machines at
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/yubikey.nix
|
#+begin_src nix-ts :tangle modules/home/common/yubikey.nix
|
||||||
{ lib, config, inputs, nixosConfig ? config, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings";
|
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings";
|
||||||
|
|
||||||
config = lib.mkIf config.swarselmodules.yubikey ({
|
config = lib.mkIf config.swarselmodules.yubikey {
|
||||||
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||||
|
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
||||||
|
};
|
||||||
|
|
||||||
pam.yubico.authorizedYubiKeys = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
pam.yubico.authorizedYubiKeys = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
||||||
ids = [
|
ids = [
|
||||||
|
|
@ -11471,11 +11449,7 @@ I use sops-nix to handle secrets that I want to have available on my machines at
|
||||||
nixosConfig.repo.secrets.common.yubikeys.dev2
|
nixosConfig.repo.secrets.common.yubikeys.dev2
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
|
||||||
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
@ -11519,10 +11493,6 @@ It is very convenient to have SSH aliases in place for machines that I use. This
|
||||||
hostname = "192.168.1.136";
|
hostname = "192.168.1.136";
|
||||||
user = "root";
|
user = "root";
|
||||||
};
|
};
|
||||||
"dgx" = {
|
|
||||||
hostname = "192.168.48.200";
|
|
||||||
user = "swarsel";
|
|
||||||
};
|
|
||||||
"winters" = {
|
"winters" = {
|
||||||
hostname = "192.168.178.24";
|
hostname = "192.168.178.24";
|
||||||
user = "root";
|
user = "root";
|
||||||
|
|
@ -12312,7 +12282,7 @@ lib.mkMerge [ zshConfigEarlyInit zshConfig ];
|
||||||
Currently I only use it as before with =initExtra= though.
|
Currently I only use it as before with =initExtra= though.
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/zsh.nix
|
#+begin_src nix-ts :tangle modules/home/common/zsh.nix
|
||||||
{ config, pkgs, lib, minimal, inputs, globals, nixosConfig ? config, ... }:
|
{ config, pkgs, lib, minimal, globals, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) flakePath;
|
inherit (config.swarselsystems) flakePath;
|
||||||
crocDomain = globals.services.croc.domain;
|
crocDomain = globals.services.croc.domain;
|
||||||
|
|
@ -12326,7 +12296,12 @@ Currently I only use it as before with =initExtra= though.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselmodules.zsh
|
config = lib.mkIf config.swarselmodules.zsh
|
||||||
({
|
{
|
||||||
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
croc-password = { };
|
||||||
|
github-nixpkgs-review-token = { };
|
||||||
|
};
|
||||||
|
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -12438,20 +12413,13 @@ Currently I only use it as before with =initExtra= though.
|
||||||
'';
|
'';
|
||||||
sessionVariables = lib.mkIf (!config.swarselsystems.isPublic) {
|
sessionVariables = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||||
CROC_RELAY = crocDomain;
|
CROC_RELAY = crocDomain;
|
||||||
CROC_PASS = "$(cat ${nixosConfig.sops.secrets.croc-password.path or ""})";
|
CROC_PASS = "$(cat ${nixosConfig.sops.secrets.croc-password.path})";
|
||||||
GITHUB_TOKEN = "$(cat ${nixosConfig.sops.secrets.github-nixpkgs-review-token.path or ""})";
|
GITHUB_TOKEN = "$(cat ${nixosConfig.sops.secrets.github-nixpkgs-review-token.path})";
|
||||||
QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.libsForQt5.qt5.qtbase.bin}/lib/qt-${pkgs.libsForQt5.qt5.qtbase.version}/plugins";
|
QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.libsForQt5.qt5.qtbase.bin}/lib/qt-${pkgs.libsForQt5.qt5.qtbase.version}/plugins";
|
||||||
# QTWEBENGINE_CHROMIUM_FLAGS = "--no-sandbox";
|
# QTWEBENGINE_CHROMIUM_FLAGS = "--no-sandbox";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
|
||||||
croc-password = { };
|
|
||||||
github-nixpkgs-review-token = { };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
@ -12596,7 +12564,7 @@ Currently I only use it as before with =initExtra= though.
|
||||||
Normally I use 4 mail accounts - here I set them all up. Three of them are Google accounts (sadly), which are a chore to setup. The last is just a sender account that I setup SMTP for here.
|
Normally I use 4 mail accounts - here I set them all up. Three of them are Google accounts (sadly), which are a chore to setup. The last is just a sender account that I setup SMTP for here.
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/mail.nix
|
#+begin_src nix-ts :tangle modules/home/common/mail.nix
|
||||||
{ lib, config, inputs, nixosConfig ? config, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address2-name address3 address3-name address4 address4-user address4-host;
|
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address2-name address3 address3-name address4 address4-user address4-host;
|
||||||
inherit (nixosConfig.repo.secrets.common) fullName;
|
inherit (nixosConfig.repo.secrets.common) fullName;
|
||||||
|
|
@ -12604,8 +12572,14 @@ Normally I use 4 mail accounts - here I set them all up. Three of them are Googl
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.mail = lib.mkEnableOption "mail settings";
|
options.swarselmodules.mail = lib.mkEnableOption "mail settings";
|
||||||
config = lib.mkIf config.swarselmodules.mail
|
config = lib.mkIf config.swarselmodules.mail {
|
||||||
({
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
||||||
|
address2-token = { path = "${xdgDir}/secrets/address2-token"; };
|
||||||
|
address3-token = { path = "${xdgDir}/secrets/address3-token"; };
|
||||||
|
address4-token = { path = "${xdgDir}/secrets/address4-token"; };
|
||||||
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
mbsync = {
|
mbsync = {
|
||||||
|
|
@ -12779,14 +12753,7 @@ Normally I use 4 mail accounts - here I set them all up. Three of them are Googl
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
|
||||||
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
|
||||||
address2-token = { path = "${xdgDir}/secrets/address2-token"; };
|
|
||||||
address3-token = { path = "${xdgDir}/secrets/address3-token"; };
|
|
||||||
address4-token = { path = "${xdgDir}/secrets/address4-token"; };
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
@ -12807,8 +12774,23 @@ Lastly, I am defining some more packages here that the parser has problems findi
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.emacs = lib.mkEnableOption "emacs settings";
|
options.swarselmodules.emacs = lib.mkEnableOption "emacs settings";
|
||||||
config = lib.mkIf config.swarselmodules.emacs ({
|
config = lib.mkIf config.swarselmodules.emacs {
|
||||||
# needed for elfeed
|
# needed for elfeed
|
||||||
|
sops = lib.mkIf (!isPublic && !isNixos) {
|
||||||
|
secrets = {
|
||||||
|
fever-pw = { path = "${homeDir}/.emacs.d/.fever"; };
|
||||||
|
emacs-radicale-pw = { };
|
||||||
|
};
|
||||||
|
templates = {
|
||||||
|
authinfo = {
|
||||||
|
path = "${homeDir}/.emacs.d/.authinfo";
|
||||||
|
content = ''
|
||||||
|
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# enable emacs overlay for bleeding edge features
|
# enable emacs overlay for bleeding edge features
|
||||||
# also read init.el file and install use-package packages
|
# also read init.el file and install use-package packages
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
|
|
@ -12878,25 +12860,7 @@ Lastly, I am defining some more packages here that the parser has problems findi
|
||||||
socketActivation.enable = false;
|
socketActivation.enable = false;
|
||||||
startWithUserSession = "graphical";
|
startWithUserSession = "graphical";
|
||||||
};
|
};
|
||||||
|
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
|
|
||||||
sops = lib.mkIf (!isPublic && !isNixos) {
|
|
||||||
secrets = {
|
|
||||||
fever-pw = { path = "${homeDir}/.emacs.d/.fever"; };
|
|
||||||
emacs-radicale-pw = { };
|
|
||||||
};
|
};
|
||||||
templates = {
|
|
||||||
authinfo = {
|
|
||||||
path = "${homeDir}/.emacs.d/.authinfo";
|
|
||||||
content = ''
|
|
||||||
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
@ -12916,7 +12880,7 @@ The rest of the related configuration is found here:
|
||||||
- [[#h:f93f66f9-6b8b-478e-b139-b2f382c1f25e][waybarupdate]]
|
- [[#h:f93f66f9-6b8b-478e-b139-b2f382c1f25e][waybarupdate]]
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/waybar.nix
|
#+begin_src nix-ts :tangle modules/home/common/waybar.nix
|
||||||
{ self, config, lib, inputs, pkgs, ... }:
|
{ self, config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) xdgDir;
|
inherit (config.swarselsystems) xdgDir;
|
||||||
generateIcons = n: lib.concatStringsSep " " (builtins.map (x: "{icon" + toString x + "}") (lib.range 0 (n - 1)));
|
generateIcons = n: lib.concatStringsSep " " (builtins.map (x: "{icon" + toString x + "}") (lib.range 0 (n - 1)));
|
||||||
|
|
@ -12970,7 +12934,7 @@ The rest of the related configuration is found here:
|
||||||
internal = true;
|
internal = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselmodules.waybar ({
|
config = lib.mkIf config.swarselmodules.waybar {
|
||||||
|
|
||||||
swarselsystems = {
|
swarselsystems = {
|
||||||
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
||||||
|
|
@ -12978,12 +12942,16 @@ The rest of the related configuration is found here:
|
||||||
] ++ modulesRight);
|
] ++ modulesRight);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
github-notifications-token = { path = "${xdgDir}/secrets/github-notifications-token"; };
|
||||||
|
};
|
||||||
|
|
||||||
services.playerctld.enable = true;
|
services.playerctld.enable = true;
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = false;
|
enable = true;
|
||||||
# target = "sway-session.target";
|
# target = "sway-session.target";
|
||||||
inherit (config.wayland.systemd) target;
|
inherit (config.wayland.systemd) target;
|
||||||
};
|
};
|
||||||
|
|
@ -13238,11 +13206,7 @@ The rest of the related configuration is found here:
|
||||||
};
|
};
|
||||||
style = builtins.readFile (self + /files/waybar/style.css);
|
style = builtins.readFile (self + /files/waybar/style.css);
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
|
||||||
github-notifications-token = { path = "${xdgDir}/secrets/github-notifications-token"; };
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
@ -13504,9 +13468,6 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
|
||||||
default-timeout = 2000;
|
default-timeout = 2000;
|
||||||
group-by = "category";
|
group-by = "category";
|
||||||
};
|
};
|
||||||
"mode=do-not-disturb" = {
|
|
||||||
invisible = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -13747,7 +13708,7 @@ I am currently using SwayFX, which adds some nice effects to sway, like rounded
|
||||||
Currently, I am too lazy to explain every option here, but most of it is very self-explaining in any case.
|
Currently, I am too lazy to explain every option here, but most of it is very self-explaining in any case.
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/sway.nix
|
#+begin_src nix-ts :tangle modules/home/common/sway.nix
|
||||||
{ config, lib, vars, nixosConfig ? config, ... }:
|
{ config, lib, vars, ... }:
|
||||||
let
|
let
|
||||||
eachOutput = _: monitor: {
|
eachOutput = _: monitor: {
|
||||||
inherit (monitor) name;
|
inherit (monitor) name;
|
||||||
|
|
@ -14130,7 +14091,6 @@ Currently, I am too lazy to explain every option here, but most of it is very se
|
||||||
export XDG_CURRENT_DESKTOP=sway;
|
export XDG_CURRENT_DESKTOP=sway;
|
||||||
export XDG_SESSION_DESKTOP=sway;
|
export XDG_SESSION_DESKTOP=sway;
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1;
|
export _JAVA_AWT_WM_NONREPARENTING=1;
|
||||||
export GITHUB_NOTIFICATION_TOKEN_PATH=${nixosConfig.sops.secrets.github-notifications-token.path};
|
|
||||||
'' + vars.waylandExports;
|
'' + vars.waylandExports;
|
||||||
# extraConfigEarly = "
|
# extraConfigEarly = "
|
||||||
# exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
# exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||||
|
|
@ -14781,15 +14741,21 @@ This service changes the screen hue at night. I am not sure if that really does
|
||||||
|
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle modules/home/common/anki.nix
|
#+begin_src nix-ts :tangle modules/home/common/anki.nix
|
||||||
{ lib, config, pkgs, globals, inputs, nixosConfig ? config, ... }:
|
{ lib, config, pkgs, globals, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
moduleName = "anki";
|
moduleName = "anki";
|
||||||
inherit (config.swarselsystems) isPublic isNixos;
|
inherit (config.swarselsystems) isPublic isNixos;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
|
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
|
||||||
config = lib.mkIf config.swarselmodules.${moduleName}
|
config = lib.mkIf config.swarselmodules.${moduleName} {
|
||||||
({
|
|
||||||
|
sops = lib.mkIf (!isPublic && !isNixos) {
|
||||||
|
secrets = {
|
||||||
|
anki-user = { };
|
||||||
|
anki-pw = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.anki = {
|
programs.anki = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -14837,14 +14803,7 @@ This service changes the screen hue at night. I am not sure if that really does
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops = lib.mkIf (!isPublic && !isNixos) {
|
|
||||||
secrets = {
|
|
||||||
anki-user = { };
|
|
||||||
anki-pw = { };
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -16988,15 +16947,13 @@ This utility checks if there are updated packages in nixpkgs-unstable. It does s
|
||||||
|
|
||||||
|
|
||||||
#+begin_src nix-ts :tangle pkgs/kanshare/default.nix
|
#+begin_src nix-ts :tangle pkgs/kanshare/default.nix
|
||||||
{ name, writeShellApplication, wlr-randr, busybox, wl-mirror, mako, ... }:
|
{ name, writeShellApplication, wlr-randr, busybox, wl-mirror, ... }:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
inherit name;
|
inherit name;
|
||||||
runtimeInputs = [ wlr-randr busybox wl-mirror mako ];
|
runtimeInputs = [ wlr-randr busybox wl-mirror ];
|
||||||
text = ''
|
text = ''
|
||||||
makoctl mode -a do-not-disturb
|
|
||||||
wlr-randr | grep "$2" | cut -d" " -f1 | xargs -I{} wl-present mirror "$1" --fullscreen-output {}
|
wlr-randr | grep "$2" | cut -d" " -f1 | xargs -I{} wl-present mirror "$1" --fullscreen-output {}
|
||||||
makoctl mode -r do-not-disturb
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -18275,61 +18232,7 @@ This script allows for quick git replace of a string.
|
||||||
inherit name;
|
inherit name;
|
||||||
runtimeInputs = [ git gnugrep findutils ];
|
runtimeInputs = [ git gnugrep findutils ];
|
||||||
text = ''
|
text = ''
|
||||||
|
|
||||||
function help_and_exit() {
|
|
||||||
echo
|
|
||||||
echo "Remotely installs SwarselSystem on a target machine including secret deployment."
|
|
||||||
echo
|
|
||||||
echo "USAGE: $0 [-f/-t} <from> <to>"
|
|
||||||
echo
|
|
||||||
echo "ARGS:"
|
|
||||||
echo " -f | --filenames Replace in filenames."
|
|
||||||
echo " -d | --directory Replace text in files within this directory."
|
|
||||||
echo " -r | --repo Replace text in files in the entire git repo."
|
|
||||||
echo " -h | --help Print this help."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
target_files=false
|
|
||||||
target_repo=false
|
|
||||||
target_dirs=false
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
-f | --filenames)
|
|
||||||
shift
|
|
||||||
target_files=true
|
|
||||||
;;
|
|
||||||
-r | --repo)
|
|
||||||
shift
|
|
||||||
target_repo=rue
|
|
||||||
;;
|
|
||||||
-d | --directory)
|
|
||||||
shift
|
|
||||||
target_dirs=rue
|
|
||||||
;;
|
|
||||||
-h | --help) help_and_exit ;;
|
|
||||||
,*)
|
|
||||||
echo "Invalid option detected."
|
|
||||||
help_and_exit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if [[ $target_files == "true" ]]; then
|
|
||||||
for file in $(git ls-files | grep "$1" | sed -e "s/\($1[^/]*\).*/\1/" | uniq); do
|
|
||||||
git mv "$file" "''${file//$1/$2}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $target_repo == "true" ]]; then
|
|
||||||
git grep -l "$1" | xargs sed -i "s/$1/$2/g"
|
git grep -l "$1" | xargs sed -i "s/$1/$2/g"
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $target_dirs == "true" ]]; then
|
|
||||||
grep -rl "$1" . | xargs sed -i "s/$1/$2/g"
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
6
flake.lock
generated
6
flake.lock
generated
|
|
@ -6365,11 +6365,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-dev": {
|
"nixpkgs-dev": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761589965,
|
"lastModified": 1759233809,
|
||||||
"narHash": "sha256-ZtypYmGwo7wUOo88UKVAdUZCYCpvFM8O0bEmI7+NW5k=",
|
"narHash": "sha256-ww6JlKuclxzcBb+cb4GCnVw4PtI+7xd3J9/ctINWKeA=",
|
||||||
"owner": "Swarsel",
|
"owner": "Swarsel",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ed3254fbd834e5bfbf6bc9586d57307a92f1a269",
|
"rev": "d3e334a2a4f9d50568bf03ec62cd445faac7ce9e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.stylix.homeModules.stylix
|
inputs.stylix.homeManagerModules.stylix
|
||||||
# inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.nix-index-database.homeModules.nix-index
|
inputs.nix-index-database.homeModules.nix-index
|
||||||
"${self}/modules/home"
|
"${self}/modules/home"
|
||||||
"${self}/modules/nixos/common/pii.nix"
|
"${self}/modules/nixos/common/pii.nix"
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
{ lib, config, pkgs, globals, inputs, nixosConfig ? config, ... }:
|
{ lib, config, pkgs, globals, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
moduleName = "anki";
|
moduleName = "anki";
|
||||||
inherit (config.swarselsystems) isPublic isNixos;
|
inherit (config.swarselsystems) isPublic isNixos;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
|
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
|
||||||
config = lib.mkIf config.swarselmodules.${moduleName}
|
config = lib.mkIf config.swarselmodules.${moduleName} {
|
||||||
({
|
|
||||||
|
sops = lib.mkIf (!isPublic && !isNixos) {
|
||||||
|
secrets = {
|
||||||
|
anki-user = { };
|
||||||
|
anki-pw = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.anki = {
|
programs.anki = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -54,13 +60,6 @@ in
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops = lib.mkIf (!isPublic && !isNixos) {
|
|
||||||
secrets = {
|
|
||||||
anki-user = { };
|
|
||||||
anki-pw = { };
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,23 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.emacs = lib.mkEnableOption "emacs settings";
|
options.swarselmodules.emacs = lib.mkEnableOption "emacs settings";
|
||||||
config = lib.mkIf config.swarselmodules.emacs ({
|
config = lib.mkIf config.swarselmodules.emacs {
|
||||||
# needed for elfeed
|
# needed for elfeed
|
||||||
|
sops = lib.mkIf (!isPublic && !isNixos) {
|
||||||
|
secrets = {
|
||||||
|
fever-pw = { path = "${homeDir}/.emacs.d/.fever"; };
|
||||||
|
emacs-radicale-pw = { };
|
||||||
|
};
|
||||||
|
templates = {
|
||||||
|
authinfo = {
|
||||||
|
path = "${homeDir}/.emacs.d/.authinfo";
|
||||||
|
content = ''
|
||||||
|
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# enable emacs overlay for bleeding edge features
|
# enable emacs overlay for bleeding edge features
|
||||||
# also read init.el file and install use-package packages
|
# also read init.el file and install use-package packages
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
|
|
@ -76,23 +91,5 @@ in
|
||||||
socketActivation.enable = false;
|
socketActivation.enable = false;
|
||||||
startWithUserSession = "graphical";
|
startWithUserSession = "graphical";
|
||||||
};
|
};
|
||||||
|
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
|
|
||||||
sops = lib.mkIf (!isPublic && !isNixos) {
|
|
||||||
secrets = {
|
|
||||||
fever-pw = { path = "${homeDir}/.emacs.d/.fever"; };
|
|
||||||
emacs-radicale-pw = { };
|
|
||||||
};
|
};
|
||||||
templates = {
|
|
||||||
authinfo = {
|
|
||||||
path = "${homeDir}/.emacs.d/.authinfo";
|
|
||||||
content = ''
|
|
||||||
machine ${globals.services.radicale.domain} login ${radicaleUser} password ${config.sops.placeholder.emacs-radicale-pw}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, config, inputs, nixosConfig ? config, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address2-name address3 address3-name address4 address4-user address4-host;
|
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address2-name address3 address3-name address4 address4-user address4-host;
|
||||||
inherit (nixosConfig.repo.secrets.common) fullName;
|
inherit (nixosConfig.repo.secrets.common) fullName;
|
||||||
|
|
@ -6,8 +6,14 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.mail = lib.mkEnableOption "mail settings";
|
options.swarselmodules.mail = lib.mkEnableOption "mail settings";
|
||||||
config = lib.mkIf config.swarselmodules.mail
|
config = lib.mkIf config.swarselmodules.mail {
|
||||||
({
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
||||||
|
address2-token = { path = "${xdgDir}/secrets/address2-token"; };
|
||||||
|
address3-token = { path = "${xdgDir}/secrets/address3-token"; };
|
||||||
|
address4-token = { path = "${xdgDir}/secrets/address4-token"; };
|
||||||
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
mbsync = {
|
mbsync = {
|
||||||
|
|
@ -181,12 +187,5 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
|
||||||
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
|
||||||
address2-token = { path = "${xdgDir}/secrets/address2-token"; };
|
|
||||||
address3-token = { path = "${xdgDir}/secrets/address3-token"; };
|
|
||||||
address4-token = { path = "${xdgDir}/secrets/address4-token"; };
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,6 @@
|
||||||
default-timeout = 2000;
|
default-timeout = 2000;
|
||||||
group-by = "category";
|
group-by = "category";
|
||||||
};
|
};
|
||||||
"mode=do-not-disturb" = {
|
|
||||||
invisible = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, config, inputs, ... }:
|
{ lib, config, nixgl, ... }:
|
||||||
{
|
{
|
||||||
options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings";
|
options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings";
|
||||||
options.swarselsystems = {
|
options.swarselsystems = {
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselmodules.nixgl {
|
config = lib.mkIf config.swarselmodules.nixgl {
|
||||||
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
inherit (inputs.nixgl) packages;
|
inherit (nixgl) packages;
|
||||||
defaultWrapper = lib.mkDefault "mesa";
|
defaultWrapper = lib.mkDefault "mesa";
|
||||||
vulkan.enable = lib.mkDefault false;
|
vulkan.enable = lib.mkDefault false;
|
||||||
prime = lib.mkIf config.swarselsystems.isSecondaryGpu {
|
prime = lib.mkIf config.swarselsystem.isSecondaryGpu {
|
||||||
card = config.swarselsystems.secondaryGpuCard;
|
card = config.swarselsystem.secondaryGpuCard;
|
||||||
installScript = "mesa";
|
installScript = "mesa";
|
||||||
};
|
};
|
||||||
offloadWrapper = lib.mkIf config.swarselsystem.isSecondaryGpu "mesaPrime";
|
offloadWrapper = lib.mkIf config.swarselsystem.isSecondaryGpu "mesaPrime";
|
||||||
|
|
|
||||||
|
|
@ -4,25 +4,18 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
||||||
config =
|
config = lib.mkIf config.swarselmodules.general {
|
||||||
let
|
|
||||||
nix-version = "2_30";
|
|
||||||
in
|
|
||||||
lib.mkIf config.swarselmodules.general {
|
|
||||||
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
package = lib.mkForce pkgs.nixVersions."nix_${nix-version}";
|
package = lib.mkForce pkgs.nixVersions.nix_2_28;
|
||||||
# extraOptions = ''
|
# extraOptions = ''
|
||||||
# plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins
|
# plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins
|
||||||
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
# '';
|
# '';
|
||||||
extraOptions =
|
extraOptions = ''
|
||||||
let
|
plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
|
||||||
nix-plugins = pkgs.nix-plugins.override {
|
buildInputs = [config.nix.package pkgs.boost];
|
||||||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
patches = o.patches or [];
|
||||||
};
|
})}/lib/nix/plugins
|
||||||
in
|
|
||||||
''
|
|
||||||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
|
||||||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
'';
|
'';
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
{ config, lib, inputs, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.sops = lib.mkEnableOption "sops settings";
|
options.swarselmodules.sops = lib.mkEnableOption "sops settings";
|
||||||
config = lib.optionalAttrs (inputs ? sops) {
|
config = lib.mkIf config.swarselmodules.sops {
|
||||||
sops = {
|
sops = {
|
||||||
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
||||||
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,6 @@
|
||||||
hostname = "192.168.1.136";
|
hostname = "192.168.1.136";
|
||||||
user = "root";
|
user = "root";
|
||||||
};
|
};
|
||||||
"dgx" = {
|
|
||||||
hostname = "192.168.48.200";
|
|
||||||
user = "swarsel";
|
|
||||||
};
|
|
||||||
"winters" = {
|
"winters" = {
|
||||||
hostname = "192.168.178.24";
|
hostname = "192.168.178.24";
|
||||||
user = "root";
|
user = "root";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, vars, nixosConfig ? config, ... }:
|
{ config, lib, vars, ... }:
|
||||||
let
|
let
|
||||||
eachOutput = _: monitor: {
|
eachOutput = _: monitor: {
|
||||||
inherit (monitor) name;
|
inherit (monitor) name;
|
||||||
|
|
@ -381,7 +381,6 @@ in
|
||||||
export XDG_CURRENT_DESKTOP=sway;
|
export XDG_CURRENT_DESKTOP=sway;
|
||||||
export XDG_SESSION_DESKTOP=sway;
|
export XDG_SESSION_DESKTOP=sway;
|
||||||
export _JAVA_AWT_WM_NONREPARENTING=1;
|
export _JAVA_AWT_WM_NONREPARENTING=1;
|
||||||
export GITHUB_NOTIFICATION_TOKEN_PATH=${nixosConfig.sops.secrets.github-notifications-token.path};
|
|
||||||
'' + vars.waylandExports;
|
'' + vars.waylandExports;
|
||||||
# extraConfigEarly = "
|
# extraConfigEarly = "
|
||||||
# exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
# exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, config, lib, inputs, pkgs, ... }:
|
{ self, config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) xdgDir;
|
inherit (config.swarselsystems) xdgDir;
|
||||||
generateIcons = n: lib.concatStringsSep " " (builtins.map (x: "{icon" + toString x + "}") (lib.range 0 (n - 1)));
|
generateIcons = n: lib.concatStringsSep " " (builtins.map (x: "{icon" + toString x + "}") (lib.range 0 (n - 1)));
|
||||||
|
|
@ -52,7 +52,7 @@ in
|
||||||
internal = true;
|
internal = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselmodules.waybar ({
|
config = lib.mkIf config.swarselmodules.waybar {
|
||||||
|
|
||||||
swarselsystems = {
|
swarselsystems = {
|
||||||
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
||||||
|
|
@ -60,12 +60,16 @@ in
|
||||||
] ++ modulesRight);
|
] ++ modulesRight);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
github-notifications-token = { path = "${xdgDir}/secrets/github-notifications-token"; };
|
||||||
|
};
|
||||||
|
|
||||||
services.playerctld.enable = true;
|
services.playerctld.enable = true;
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = false;
|
enable = true;
|
||||||
# target = "sway-session.target";
|
# target = "sway-session.target";
|
||||||
inherit (config.wayland.systemd) target;
|
inherit (config.wayland.systemd) target;
|
||||||
};
|
};
|
||||||
|
|
@ -320,9 +324,5 @@ in
|
||||||
};
|
};
|
||||||
style = builtins.readFile (self + /files/waybar/style.css);
|
style = builtins.readFile (self + /files/waybar/style.css);
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
|
||||||
github-notifications-token = { path = "${xdgDir}/secrets/github-notifications-token"; };
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
{ lib, config, inputs, nixosConfig ? config, ... }:
|
{ lib, config, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) homeDir;
|
inherit (config.swarselsystems) homeDir;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings";
|
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings";
|
||||||
|
|
||||||
config = lib.mkIf config.swarselmodules.yubikey ({
|
config = lib.mkIf config.swarselmodules.yubikey {
|
||||||
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||||
|
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
||||||
|
};
|
||||||
|
|
||||||
pam.yubico.authorizedYubiKeys = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
pam.yubico.authorizedYubiKeys = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
||||||
ids = [
|
ids = [
|
||||||
|
|
@ -13,9 +17,5 @@ in
|
||||||
nixosConfig.repo.secrets.common.yubikeys.dev2
|
nixosConfig.repo.secrets.common.yubikeys.dev2
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
|
||||||
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, lib, minimal, inputs, globals, nixosConfig ? config, ... }:
|
{ config, pkgs, lib, minimal, globals, nixosConfig ? config, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) flakePath;
|
inherit (config.swarselsystems) flakePath;
|
||||||
crocDomain = globals.services.croc.domain;
|
crocDomain = globals.services.croc.domain;
|
||||||
|
|
@ -12,7 +12,12 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.swarselmodules.zsh
|
config = lib.mkIf config.swarselmodules.zsh
|
||||||
({
|
{
|
||||||
|
|
||||||
|
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
||||||
|
croc-password = { };
|
||||||
|
github-nixpkgs-review-token = { };
|
||||||
|
};
|
||||||
|
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -124,18 +129,11 @@ in
|
||||||
'';
|
'';
|
||||||
sessionVariables = lib.mkIf (!config.swarselsystems.isPublic) {
|
sessionVariables = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||||
CROC_RELAY = crocDomain;
|
CROC_RELAY = crocDomain;
|
||||||
CROC_PASS = "$(cat ${nixosConfig.sops.secrets.croc-password.path or ""})";
|
CROC_PASS = "$(cat ${nixosConfig.sops.secrets.croc-password.path})";
|
||||||
GITHUB_TOKEN = "$(cat ${nixosConfig.sops.secrets.github-nixpkgs-review-token.path or ""})";
|
GITHUB_TOKEN = "$(cat ${nixosConfig.sops.secrets.github-nixpkgs-review-token.path})";
|
||||||
QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.libsForQt5.qt5.qtbase.bin}/lib/qt-${pkgs.libsForQt5.qt5.qtbase.version}/plugins";
|
QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.libsForQt5.qt5.qtbase.bin}/lib/qt-${pkgs.libsForQt5.qt5.qtbase.version}/plugins";
|
||||||
# QTWEBENGINE_CHROMIUM_FLAGS = "--no-sandbox";
|
# QTWEBENGINE_CHROMIUM_FLAGS = "--no-sandbox";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs (inputs ? sops) {
|
|
||||||
|
|
||||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
|
|
||||||
croc-password = { };
|
|
||||||
github-nixpkgs-review-token = { };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,12 @@
|
||||||
settings = {
|
settings = {
|
||||||
# initial_session.command = "sway";
|
# initial_session.command = "sway";
|
||||||
initial_session.command = "uwsm start -- sway-uwsm.desktop";
|
initial_session.command = "uwsm start -- sway-uwsm.desktop";
|
||||||
# --cmd sway
|
|
||||||
default_session.command = ''
|
default_session.command = ''
|
||||||
${pkgs.tuigreet}/bin/tuigreet \
|
${pkgs.tuigreet}/bin/tuigreet \
|
||||||
--time \
|
--time \
|
||||||
--asterisks \
|
--asterisks \
|
||||||
--user-menu \
|
--user-menu \
|
||||||
--cmd "uwsm start -- sway-uwsm.desktop"
|
--cmd sway
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -60,12 +60,8 @@ in
|
||||||
sopsFile = "${config.swarselsystems.flakePath}/secrets/general/secrets.yaml";
|
sopsFile = "${config.swarselsystems.flakePath}/secrets/general/secrets.yaml";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix =
|
nix = {
|
||||||
let
|
package = pkgs.nixVersions.nix_2_28;
|
||||||
nix-version = "2_30";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
package = pkgs.nixVersions."nix_${nix-version}";
|
|
||||||
settings = {
|
settings = {
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
|
|
@ -82,22 +78,11 @@ in
|
||||||
# '' + lib.optionalString (!minimal) ''
|
# '' + lib.optionalString (!minimal) ''
|
||||||
# !include ${config.sops.secrets.github-api-token.path}
|
# !include ${config.sops.secrets.github-api-token.path}
|
||||||
# '';
|
# '';
|
||||||
# extraOptions = ''
|
extraOptions = ''
|
||||||
# plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
|
plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
|
||||||
# buildInputs = [config.nix.package pkgs.boost];
|
buildInputs = [config.nix.package pkgs.boost];
|
||||||
# patches = o.patches or [];
|
patches = o.patches or [];
|
||||||
# })}/lib/nix/plugins
|
})}/lib/nix/plugins
|
||||||
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
|
||||||
# '';
|
|
||||||
|
|
||||||
extraOptions =
|
|
||||||
let
|
|
||||||
nix-plugins = pkgs.nix-plugins.override {
|
|
||||||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
''
|
|
||||||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
|
||||||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
'' + lib.optionalString (!minimal) ''
|
'' + lib.optionalString (!minimal) ''
|
||||||
!include ${config.sops.secrets.github-api-token.path}
|
!include ${config.sops.secrets.github-api-token.path}
|
||||||
|
|
|
||||||
|
|
@ -46,13 +46,9 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
devshells.default =
|
devshells.default = {
|
||||||
let
|
|
||||||
nix-version = "2_30";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
packages = [
|
packages = [
|
||||||
(builtins.trace "alarm: pinned nix_${nix-version}" pkgs.nixVersions."nix_${nix-version}")
|
(builtins.trace "alarm: we pinned nix_2_28 because of https://github.com/shlevy/nix-plugins/issues/20" pkgs.nixVersions.nix_2_28) # Always use the nix version from this flake's nixpkgs version, so that nix-plugins (below) doesn't fail because of different nix versions.
|
||||||
pkgs.git
|
pkgs.git
|
||||||
pkgs.just
|
pkgs.just
|
||||||
pkgs.age
|
pkgs.age
|
||||||
|
|
@ -88,12 +84,12 @@
|
||||||
{
|
{
|
||||||
package = pkgs.nix-output-monitor;
|
package = pkgs.nix-output-monitor;
|
||||||
help = "Nix Output Monitor (a drop-in alternative for `nix` which shows a build graph)";
|
help = "Nix Output Monitor (a drop-in alternative for `nix` which shows a build graph)";
|
||||||
name = "nom \"$@\"";
|
name = "nom";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "hm";
|
name = "hm";
|
||||||
help = "Manage home-manager config";
|
help = "Manage home-manager config";
|
||||||
command = "home-manager \"$@\"";
|
command = "home-manager";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fmt";
|
name = "fmt";
|
||||||
|
|
@ -118,7 +114,7 @@
|
||||||
{
|
{
|
||||||
name = "bld";
|
name = "bld";
|
||||||
help = "Build a number of configurations";
|
help = "Build a number of configurations";
|
||||||
command = "swarsel-build \"$@\"";
|
command = "swarel-build \"$@\"";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "c";
|
name = "c";
|
||||||
|
|
@ -129,19 +125,13 @@
|
||||||
|
|
||||||
devshell.startup.pre-commit-install.text = "pre-commit install";
|
devshell.startup.pre-commit-install.text = "pre-commit install";
|
||||||
|
|
||||||
env =
|
env = [
|
||||||
let
|
|
||||||
nix-plugins = pkgs.nix-plugins.override {
|
|
||||||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
[
|
|
||||||
{
|
{
|
||||||
# Additionally configure nix-plugins with our extra builtins file.
|
# Additionally configure nix-plugins with our extra builtins file.
|
||||||
# We need this for our repo secrets.
|
# We need this for our repo secrets.
|
||||||
name = "NIX_CONFIG";
|
name = "NIX_CONFIG";
|
||||||
value = ''
|
value = ''
|
||||||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
plugin-files = ${pkgs.nix-plugins}/lib/nix/plugins
|
||||||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@
|
||||||
modules = [
|
modules = [
|
||||||
inputs.niri-flake.homeModules.niri
|
inputs.niri-flake.homeModules.niri
|
||||||
inputs.nix-index-database.homeModules.nix-index
|
inputs.nix-index-database.homeModules.nix-index
|
||||||
# inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.spicetify-nix.homeManagerModules.default
|
inputs.spicetify-nix.homeManagerModules.default
|
||||||
inputs.swarsel-nix.homeModules.default
|
inputs.swarsel-nix.homeModules.default
|
||||||
"${self}/hosts/${type}/${configName}"
|
"${self}/hosts/${type}/${configName}"
|
||||||
|
|
|
||||||
|
|
@ -4,60 +4,6 @@ writeShellApplication {
|
||||||
inherit name;
|
inherit name;
|
||||||
runtimeInputs = [ git gnugrep findutils ];
|
runtimeInputs = [ git gnugrep findutils ];
|
||||||
text = ''
|
text = ''
|
||||||
|
|
||||||
function help_and_exit() {
|
|
||||||
echo
|
|
||||||
echo "Remotely installs SwarselSystem on a target machine including secret deployment."
|
|
||||||
echo
|
|
||||||
echo "USAGE: $0 [-f/-t} <from> <to>"
|
|
||||||
echo
|
|
||||||
echo "ARGS:"
|
|
||||||
echo " -f | --filenames Replace in filenames."
|
|
||||||
echo " -d | --directory Replace text in files within this directory."
|
|
||||||
echo " -r | --repo Replace text in files in the entire git repo."
|
|
||||||
echo " -h | --help Print this help."
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
target_files=false
|
|
||||||
target_repo=false
|
|
||||||
target_dirs=false
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
-f | --filenames)
|
|
||||||
shift
|
|
||||||
target_files=true
|
|
||||||
;;
|
|
||||||
-r | --repo)
|
|
||||||
shift
|
|
||||||
target_repo=rue
|
|
||||||
;;
|
|
||||||
-d | --directory)
|
|
||||||
shift
|
|
||||||
target_dirs=rue
|
|
||||||
;;
|
|
||||||
-h | --help) help_and_exit ;;
|
|
||||||
*)
|
|
||||||
echo "Invalid option detected."
|
|
||||||
help_and_exit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if [[ $target_files == "true" ]]; then
|
|
||||||
for file in $(git ls-files | grep "$1" | sed -e "s/\($1[^/]*\).*/\1/" | uniq); do
|
|
||||||
git mv "$file" "''${file//$1/$2}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $target_repo == "true" ]]; then
|
|
||||||
git grep -l "$1" | xargs sed -i "s/$1/$2/g"
|
git grep -l "$1" | xargs sed -i "s/$1/$2/g"
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $target_dirs == "true" ]]; then
|
|
||||||
grep -rl "$1" . | xargs sed -i "s/$1/$2/g"
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
{ name, writeShellApplication, wlr-randr, busybox, wl-mirror, mako, ... }:
|
{ name, writeShellApplication, wlr-randr, busybox, wl-mirror, ... }:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
inherit name;
|
inherit name;
|
||||||
runtimeInputs = [ wlr-randr busybox wl-mirror mako ];
|
runtimeInputs = [ wlr-randr busybox wl-mirror ];
|
||||||
text = ''
|
text = ''
|
||||||
makoctl mode -a do-not-disturb
|
|
||||||
wlr-randr | grep "$2" | cut -d" " -f1 | xargs -I{} wl-present mirror "$1" --fullscreen-output {}
|
wlr-randr | grep "$2" | cut -d" " -f1 | xargs -I{} wl-present mirror "$1" --fullscreen-output {}
|
||||||
makoctl mode -r do-not-disturb
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue