dconf
parent
12c415edf7
commit
09f38ef5bf
|
@ -1 +1,2 @@
|
|||
result
|
||||
.direnv
|
12
flake.lock
12
flake.lock
|
@ -314,16 +314,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1661119194,
|
||||
"narHash": "sha256-PDcdGfv/HIx1i23fiYnpmD1dV1HSzoPbl/utRRnFygg=",
|
||||
"owner": "nixos",
|
||||
"lastModified": 1661208473,
|
||||
"narHash": "sha256-EcoSSCrhc/qkoACcbB1Q2zi1jiFvb93kb4SS1AbviFw=",
|
||||
"owner": "NULLx76",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5cccf8e32927aef22b074a4cc7520e024ca6a14a",
|
||||
"rev": "a73f576bc51a194b6cf77580f84b60c610e0bbbe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable-small",
|
||||
"owner": "NULLx76",
|
||||
"ref": "direnv-vscode-extension",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
12
flake.nix
12
flake.nix
|
@ -6,7 +6,7 @@
|
|||
# * https://git.voidcorp.nl/j00lz/nixos-configs/src/branch/main/flake.nix
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
||||
nixpkgs.url = "github:NULLx76/nixpkgs/direnv-vscode-extension";
|
||||
|
||||
colmena.url = "github:zhaofengli/colmena";
|
||||
colmena.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -49,7 +49,12 @@
|
|||
# Script to apply local colmena deployments
|
||||
apply-local = pkgs.writeScriptBin "apply-local" ''
|
||||
#!${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
|
||||
{
|
||||
|
@ -79,9 +84,10 @@
|
|||
devShells.${system}.default = pkgs.mkShell {
|
||||
VAULT_ADDR = "http://vault.olympus:8200/";
|
||||
# This only support bash so just execute zsh in bash as a workaround :/
|
||||
shellHook = "zsh; exit $?";
|
||||
# shellHook = "zsh; exit $?";
|
||||
buildInputs = with pkgs; [
|
||||
apply-local
|
||||
dump-dconf
|
||||
colmena.packages.x86_64-linux.colmena
|
||||
fluxcd
|
||||
k9s
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
# Nix Settings
|
||||
nix = {
|
||||
package = pkgs.nixUnstable;
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
trusted-users = [ "root" "victor" ];
|
||||
|
|
|
@ -26,6 +26,7 @@ in
|
|||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.systemd-boot.configurationLimit = 6;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
@ -35,6 +36,16 @@ in
|
|||
networking.interfaces.wlp0s20f3.useDHCP = true;
|
||||
|
||||
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.
|
||||
i18n.defaultLocale = "en_GB.utf8";
|
||||
|
@ -100,12 +111,13 @@ in
|
|||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome.gnome-tweaks
|
||||
pciutils
|
||||
nvidia-offload
|
||||
vim
|
||||
wireguard-tools
|
||||
|
||||
gnome.gnome-tweaks
|
||||
gnome.dconf-editor
|
||||
gnomeExtensions.appindicator
|
||||
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
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# 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.homeDirectory = "/home/victor";
|
||||
home.stateVersion = "22.05";
|
||||
|
||||
imports = [
|
||||
./dconf.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
discord
|
||||
rnix-lsp
|
||||
|
@ -18,6 +22,8 @@
|
|||
rust-analyzer
|
||||
steam-run
|
||||
texlive.combined.scheme-full
|
||||
retroarchFull
|
||||
peek
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
|
@ -44,11 +50,20 @@
|
|||
package = pkgs.vscode;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
matklad.rust-analyzer
|
||||
mkhl.direnv
|
||||
jnoortheen.nix-ide
|
||||
james-yu.latex-workshop
|
||||
valentjn.vscode-ltex
|
||||
];
|
||||
};
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
@ -59,4 +74,45 @@
|
|||
};
|
||||
|
||||
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: {
|
||||
"${hostname}.${realm}" = {
|
||||
mkColmenaHost = { ip ? null, hostname, tags, realm, type ? "lxc", ... }@host: let
|
||||
name = if realm == "thalassa" then hostname else "${hostname}.${realm}";
|
||||
in{
|
||||
"${name}" = {
|
||||
imports = resolve_imports host;
|
||||
networking = {
|
||||
hostName = hostname;
|
||||
|
|
Loading…
Reference in New Issue