dconf
parent
12c415edf7
commit
09f38ef5bf
|
@ -1 +1,2 @@
|
||||||
result
|
result
|
||||||
|
.direnv
|
12
flake.lock
12
flake.lock
|
@ -314,16 +314,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1661119194,
|
"lastModified": 1661208473,
|
||||||
"narHash": "sha256-PDcdGfv/HIx1i23fiYnpmD1dV1HSzoPbl/utRRnFygg=",
|
"narHash": "sha256-EcoSSCrhc/qkoACcbB1Q2zi1jiFvb93kb4SS1AbviFw=",
|
||||||
"owner": "nixos",
|
"owner": "NULLx76",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5cccf8e32927aef22b074a4cc7520e024ca6a14a",
|
"rev": "a73f576bc51a194b6cf77580f84b60c610e0bbbe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NULLx76",
|
||||||
"ref": "nixos-unstable-small",
|
"ref": "direnv-vscode-extension",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
12
flake.nix
12
flake.nix
|
@ -6,7 +6,7 @@
|
||||||
# * https://git.voidcorp.nl/j00lz/nixos-configs/src/branch/main/flake.nix
|
# * https://git.voidcorp.nl/j00lz/nixos-configs/src/branch/main/flake.nix
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
nixpkgs.url = "github:NULLx76/nixpkgs/direnv-vscode-extension";
|
||||||
|
|
||||||
colmena.url = "github:zhaofengli/colmena";
|
colmena.url = "github:zhaofengli/colmena";
|
||||||
colmena.inputs.nixpkgs.follows = "nixpkgs";
|
colmena.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -49,7 +49,12 @@
|
||||||
# Script to apply local colmena deployments
|
# Script to apply local colmena deployments
|
||||||
apply-local = pkgs.writeScriptBin "apply-local" ''
|
apply-local = pkgs.writeScriptBin "apply-local" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.stdenv.shell}
|
||||||
"${colmena.packages.x86_64-linux.colmena}"/bin/colmena apply-local --sudo --node "$(cat /proc/sys/kernel/hostname).$(cat /proc/sys/kernel/domainname)"
|
"${colmena.packages.x86_64-linux.colmena}"/bin/colmena apply-local --sudo
|
||||||
|
'';
|
||||||
|
|
||||||
|
dump-dconf = pkgs.writeScriptBin "dump-dconf" ''
|
||||||
|
#!${pkgs.stdenv.shell}
|
||||||
|
dconf dump / | dconf2nix > nixos/hosts/thalassa/null/dconf.nix
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -79,9 +84,10 @@
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
VAULT_ADDR = "http://vault.olympus:8200/";
|
VAULT_ADDR = "http://vault.olympus:8200/";
|
||||||
# This only support bash so just execute zsh in bash as a workaround :/
|
# This only support bash so just execute zsh in bash as a workaround :/
|
||||||
shellHook = "zsh; exit $?";
|
# shellHook = "zsh; exit $?";
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
apply-local
|
apply-local
|
||||||
|
dump-dconf
|
||||||
colmena.packages.x86_64-linux.colmena
|
colmena.packages.x86_64-linux.colmena
|
||||||
fluxcd
|
fluxcd
|
||||||
k9s
|
k9s
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
# Nix Settings
|
# Nix Settings
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nixUnstable;
|
package = pkgs.nixUnstable;
|
||||||
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
settings = {
|
settings = {
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
trusted-users = [ "root" "victor" ];
|
trusted-users = [ "root" "victor" ];
|
||||||
|
|
|
@ -26,6 +26,7 @@ in
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 6;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
@ -35,6 +36,16 @@ in
|
||||||
networking.interfaces.wlp0s20f3.useDHCP = true;
|
networking.interfaces.wlp0s20f3.useDHCP = true;
|
||||||
|
|
||||||
fileSystems."/".options = [ "compress=zstd" ];
|
fileSystems."/".options = [ "compress=zstd" ];
|
||||||
|
# Filesystem dedup
|
||||||
|
services.beesd.filesystems = {
|
||||||
|
root = {
|
||||||
|
spec = "LABEL=nixos";
|
||||||
|
hashTableSizeMB = 256;
|
||||||
|
verbosity = "crit";
|
||||||
|
extraOptions = [ "--loadavg-target" "2.0" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_GB.utf8";
|
i18n.defaultLocale = "en_GB.utf8";
|
||||||
|
@ -100,12 +111,13 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnome.gnome-tweaks
|
|
||||||
pciutils
|
pciutils
|
||||||
nvidia-offload
|
nvidia-offload
|
||||||
vim
|
vim
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
|
|
||||||
|
gnome.gnome-tweaks
|
||||||
|
gnome.dconf-editor
|
||||||
gnomeExtensions.appindicator
|
gnomeExtensions.appindicator
|
||||||
gnomeExtensions.wireguard-indicator
|
gnomeExtensions.wireguard-indicator
|
||||||
];
|
];
|
||||||
|
@ -133,6 +145,11 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix.extraOptions = ''
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
'';
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|
|
@ -0,0 +1,267 @@
|
||||||
|
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
|
||||||
|
{
|
||||||
|
dconf.settings = {
|
||||||
|
"apps/seahorse/listing" = {
|
||||||
|
keyrings-selected = [ "secret-service:///org/freedesktop/secrets/collection/login" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"apps/seahorse/windows/key-manager" = {
|
||||||
|
height = 476;
|
||||||
|
width = 600;
|
||||||
|
};
|
||||||
|
|
||||||
|
"ca/desrt/dconf-editor" = {
|
||||||
|
saved-pathbar-path = "/org/gnome/settings-daemon/plugins/media-keys/custom0/binding";
|
||||||
|
saved-view = "/org/gnome/settings-daemon/plugins/media-keys/custom0/binding";
|
||||||
|
window-height = 500;
|
||||||
|
window-is-maximized = false;
|
||||||
|
window-width = 540;
|
||||||
|
};
|
||||||
|
|
||||||
|
"com/uploadedlobster/peek" = {
|
||||||
|
persist-window-geometry = mkTuple [ 953 214 ];
|
||||||
|
recording-output-format = "webm";
|
||||||
|
recording-start-delay = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
"es/atareao/wireguard-indicator" = {
|
||||||
|
darktheme = false;
|
||||||
|
nmcli = true;
|
||||||
|
services = [ "service1|wg-quick@wg0.service" "service2|wg-quick@wg1.service" ];
|
||||||
|
sudo = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/Totem" = {
|
||||||
|
active-plugins = [ "vimeo" "variable-rate" "skipto" "screenshot" "screensaver" "save-file" "rotation" "recent" "movie-properties" "open-directory" "mpris" "autoload-subtitles" "apple-trailers" ];
|
||||||
|
subtitle-encoding = "UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/calendar" = {
|
||||||
|
active-view = "month";
|
||||||
|
window-maximized = true;
|
||||||
|
window-size = mkTuple [ 768 600 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/control-center" = {
|
||||||
|
last-panel = "keyboard";
|
||||||
|
window-state = mkTuple [ 980 640 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders" = {
|
||||||
|
folder-children = [ "Utilities" "YaST" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders/folders/Utilities" = {
|
||||||
|
apps = [ "gnome-abrt.desktop" "gnome-system-log.desktop" "nm-connection-editor.desktop" "org.gnome.baobab.desktop" "org.gnome.Connections.desktop" "org.gnome.DejaDup.desktop" "org.gnome.Dictionary.desktop" "org.gnome.DiskUtility.desktop" "org.gnome.eog.desktop" "org.gnome.Evince.desktop" "org.gnome.FileRoller.desktop" "org.gnome.fonts.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.tweaks.desktop" "org.gnome.Usage.desktop" "vinagre.desktop" ];
|
||||||
|
categories = [ "X-GNOME-Utilities" ];
|
||||||
|
name = "X-GNOME-Utilities.directory";
|
||||||
|
translate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders/folders/YaST" = {
|
||||||
|
categories = [ "X-SuSE-YaST" ];
|
||||||
|
name = "suse-yast.directory";
|
||||||
|
translate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources" = {
|
||||||
|
sources = [ (mkTuple [ "xkb" "us+altgr-intl" ]) ];
|
||||||
|
xkb-options = [ "terminate:ctrl_alt_bksp" "caps:swapescape" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "default";
|
||||||
|
font-antialiasing = "grayscale";
|
||||||
|
font-hinting = "slight";
|
||||||
|
gtk-theme = "Arc-Darker";
|
||||||
|
show-battery-percentage = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications" = {
|
||||||
|
application-children = [ "gnome-power-panel" "code" "org-gnome-console" "codium" "discord" "org-gnome-totem" "com-uploadedlobster-peek" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/code" = {
|
||||||
|
application-id = "code.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/codium" = {
|
||||||
|
application-id = "codium.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/com-uploadedlobster-peek" = {
|
||||||
|
application-id = "com.uploadedlobster.peek.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/discord" = {
|
||||||
|
application-id = "discord.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/gnome-power-panel" = {
|
||||||
|
application-id = "gnome-power-panel.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-gnome-console" = {
|
||||||
|
application-id = "org.gnome.Console.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-gnome-totem" = {
|
||||||
|
application-id = "org.gnome.Totem.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/peripherals/touchpad" = {
|
||||||
|
tap-to-click = true;
|
||||||
|
two-finger-scrolling-enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/search-providers" = {
|
||||||
|
sort-order = [ "org.gnome.Contacts.desktop" "org.gnome.Documents.desktop" "org.gnome.Nautilus.desktop" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/session" = {
|
||||||
|
idle-delay = mkUint32 300;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/sound" = {
|
||||||
|
event-sounds = true;
|
||||||
|
theme-name = "__custom";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
move-to-workspace-1 = [ "<Shift><Super>exclam" ];
|
||||||
|
move-to-workspace-2 = [ "<Shift><Super>at" ];
|
||||||
|
move-to-workspace-3 = [ "<Shift><Super>numbersign" ];
|
||||||
|
move-to-workspace-4 = [ "<Shift><Super>dollar" ];
|
||||||
|
switch-to-workspace-1 = [ "<Super>1" ];
|
||||||
|
switch-to-workspace-2 = [ "<Super>2" ];
|
||||||
|
switch-to-workspace-3 = [ "<Super>3" ];
|
||||||
|
switch-to-workspace-4 = [ "<Super>4" ];
|
||||||
|
switch-to-workspace-5 = [ "<Super>5" ];
|
||||||
|
switch-to-workspace-6 = [ "<Super>6" ];
|
||||||
|
switch-to-workspace-7 = [ "<Super>7" ];
|
||||||
|
switch-to-workspace-8 = [ "<Super>8" ];
|
||||||
|
switch-to-workspace-9 = [ "<Super>9" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
focus-mode = "sloppy";
|
||||||
|
num-workspaces = 9;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/epiphany" = {
|
||||||
|
ask-for-default = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/epiphany/state" = {
|
||||||
|
is-maximized = false;
|
||||||
|
window-position = mkTuple [ (-1) (-1) ];
|
||||||
|
window-size = mkTuple [ 1024 768 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/evolution-data-server" = {
|
||||||
|
migrated = true;
|
||||||
|
network-monitor-gio-name = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/file-roller/dialogs/extract" = {
|
||||||
|
recreate-folders = true;
|
||||||
|
skip-newer = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/file-roller/listing" = {
|
||||||
|
show-path = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter" = {
|
||||||
|
attach-modal-dialogs = true;
|
||||||
|
dynamic-workspaces = false;
|
||||||
|
edge-tiling = true;
|
||||||
|
focus-change-on-pointer-rest = true;
|
||||||
|
workspaces-only-on-primary = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/nautilus/preferences" = {
|
||||||
|
default-folder-viewer = "icon-view";
|
||||||
|
search-filter-time-type = "last_modified";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/nautilus/window-state" = {
|
||||||
|
initial-size = mkTuple [ 890 550 ];
|
||||||
|
maximized = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/nm-applet/eap/97297cfa-75d0-4653-84a7-67940e6e828a" = {
|
||||||
|
ignore-ca-cert = true;
|
||||||
|
ignore-phase2-ca-cert = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
|
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom0/" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom0" = {
|
||||||
|
binding = "<Super>Return";
|
||||||
|
command = "kgx";
|
||||||
|
name = "Open Terminal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/power" = {
|
||||||
|
power-button-action = "suspend";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
disabled-extensions = [ "window-list@gnome-shell-extensions.gcampax.github.com" ];
|
||||||
|
enabled-extensions = [ "wireguard-indicator@atareao.es" "appindicatorsupport@rgcjonas.gmail.com" ];
|
||||||
|
favorite-apps = [ "firefox.desktop" "org.gnome.Nautilus.desktop" "org.gnome.Console.desktop" ];
|
||||||
|
had-bluetooth-devices-setup = true;
|
||||||
|
welcome-dialog-last-shown-version = "42.4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/app-switcher" = {
|
||||||
|
current-workspace-only = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/keybindings" = {
|
||||||
|
switch-to-application-1 = [];
|
||||||
|
switch-to-application-2 = [];
|
||||||
|
switch-to-application-3 = [];
|
||||||
|
switch-to-application-4 = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/world-clocks" = {
|
||||||
|
locations = "@av []";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/tweaks" = {
|
||||||
|
show-extensions-notice = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gtk/settings/file-chooser" = {
|
||||||
|
date-format = "regular";
|
||||||
|
location-mode = "path-bar";
|
||||||
|
show-hidden = false;
|
||||||
|
show-size-column = true;
|
||||||
|
show-type-column = true;
|
||||||
|
sidebar-width = 157;
|
||||||
|
sort-column = "name";
|
||||||
|
sort-directories-first = false;
|
||||||
|
sort-order = "ascending";
|
||||||
|
type-format = "category";
|
||||||
|
window-position = mkTuple [ 0 32 ];
|
||||||
|
window-size = mkTuple [ 1203 902 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"system/locale" = {
|
||||||
|
region = "en_DK.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
"system/proxy" = {
|
||||||
|
mode = "none";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,8 +1,12 @@
|
||||||
{ config, pkgs, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
home.username = "victor";
|
home.username = "victor";
|
||||||
home.homeDirectory = "/home/victor";
|
home.homeDirectory = "/home/victor";
|
||||||
home.stateVersion = "22.05";
|
home.stateVersion = "22.05";
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./dconf.nix
|
||||||
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
discord
|
discord
|
||||||
rnix-lsp
|
rnix-lsp
|
||||||
|
@ -18,6 +22,8 @@
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
steam-run
|
steam-run
|
||||||
texlive.combined.scheme-full
|
texlive.combined.scheme-full
|
||||||
|
retroarchFull
|
||||||
|
peek
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
|
@ -44,11 +50,20 @@
|
||||||
package = pkgs.vscode;
|
package = pkgs.vscode;
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
matklad.rust-analyzer
|
matklad.rust-analyzer
|
||||||
|
mkhl.direnv
|
||||||
jnoortheen.nix-ide
|
jnoortheen.nix-ide
|
||||||
james-yu.latex-workshop
|
james-yu.latex-workshop
|
||||||
valentjn.vscode-ltex
|
valentjn.vscode-ltex
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -59,4 +74,45 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
services.syncthing.enable = true;
|
services.syncthing.enable = true;
|
||||||
|
|
||||||
|
# dconf.settings =
|
||||||
|
# let
|
||||||
|
# inherit (builtins) length head tail listToAttrs genList;
|
||||||
|
# range = a: b: if a < b then [ a ] ++ range (a + 1) b else [ ];
|
||||||
|
# globalPath = "org/gnome/settings-daemon/plugins/media-keys";
|
||||||
|
# path = "${globalPath}/custom-keybindings";
|
||||||
|
# mkPath = id: "${globalPath}/custom${toString id}";
|
||||||
|
# isEmpty = list: length list == 0;
|
||||||
|
# mkSettings = settings:
|
||||||
|
# let
|
||||||
|
# checkSettings = { name, command, binding }@this: this;
|
||||||
|
# aux = i: list:
|
||||||
|
# if isEmpty list then [ ] else
|
||||||
|
# let
|
||||||
|
# hd = head list;
|
||||||
|
# tl = tail list;
|
||||||
|
# name = mkPath i;
|
||||||
|
# in
|
||||||
|
# aux (i + 1) tl ++ [{
|
||||||
|
# name = mkPath i;
|
||||||
|
# value = checkSettings hd;
|
||||||
|
# }];
|
||||||
|
# settingsList = (aux 0 settings);
|
||||||
|
# in
|
||||||
|
# listToAttrs (settingsList ++ [
|
||||||
|
# {
|
||||||
|
# name = globalPath;
|
||||||
|
# value = {
|
||||||
|
# custom-keybindings = genList (i: "/${mkPath i}/") (length settingsList);
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
# ]);
|
||||||
|
# in
|
||||||
|
# mkSettings [
|
||||||
|
# {
|
||||||
|
# name = "Open Terminal";
|
||||||
|
# command = "kgx";
|
||||||
|
# binding = "<Super>Return";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
}
|
}
|
||||||
|
|
6
util.nix
6
util.nix
|
@ -31,8 +31,10 @@ rec {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkColmenaHost = { ip ? null, hostname, tags, realm, type ? "lxc", ... }@host: {
|
mkColmenaHost = { ip ? null, hostname, tags, realm, type ? "lxc", ... }@host: let
|
||||||
"${hostname}.${realm}" = {
|
name = if realm == "thalassa" then hostname else "${hostname}.${realm}";
|
||||||
|
in{
|
||||||
|
"${name}" = {
|
||||||
imports = resolve_imports host;
|
imports = resolve_imports host;
|
||||||
networking = {
|
networking = {
|
||||||
hostName = hostname;
|
hostName = hostname;
|
||||||
|
|
Loading…
Reference in New Issue