proper amount of tabs
This commit is contained in:
parent
92abf91263
commit
349da643c6
27 changed files with 2591 additions and 2584 deletions
1
alejandra.toml
Normal file
1
alejandra.toml
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
indentation = "FourSpaces"
|
||||||
|
|
@ -1,38 +1,38 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: {
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk.disk1 = {
|
disk.disk1 = {
|
||||||
device = lib.mkDefault "/dev/sda";
|
device = lib.mkDefault "/dev/sda";
|
||||||
type = "disk";
|
type = "disk";
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
esp = {
|
|
||||||
name = "ESP";
|
|
||||||
start = "1M";
|
|
||||||
end = "128M";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "gpt";
|
||||||
format = "vfat";
|
partitions = {
|
||||||
mountpoint = "/boot";
|
esp = {
|
||||||
};
|
name = "ESP";
|
||||||
};
|
start = "1M";
|
||||||
root = {
|
end = "128M";
|
||||||
size = "100%";
|
type = "EF00";
|
||||||
content = {
|
content = {
|
||||||
type = "btrfs";
|
type = "filesystem";
|
||||||
mountpoint = "/";
|
format = "vfat";
|
||||||
mountOptions = ["noatime" "compress-force=zstd:3" "discard=async"];
|
mountpoint = "/boot";
|
||||||
subvolumes = {
|
};
|
||||||
"/home" = {
|
};
|
||||||
mountpoint = "/home";
|
root = {
|
||||||
mountOptions = ["noatime" "compress-force=zstd:3" "discard=async"];
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = ["noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
|
subvolumes = {
|
||||||
|
"/home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = ["noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
# services.displayManager.sddm.enable = true;
|
# services.displayManager.sddm.enable = true;
|
||||||
# services.displayManager.cosmic-greeter.enable = false;
|
# services.displayManager.cosmic-greeter.enable = false;
|
||||||
services.desktopManager.cosmic.enable = true;
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
|
||||||
environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
|
environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||||
|
|
||||||
environment.cosmic.excludePackages = with pkgs; [
|
environment.cosmic.excludePackages = with pkgs; [
|
||||||
cosmic-edit
|
cosmic-edit
|
||||||
cosmic-player
|
cosmic-player
|
||||||
cosmic-term
|
cosmic-term
|
||||||
cosmic-wallpapers
|
cosmic-wallpapers
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
212
extras/dev.nix
212
extras/dev.nix
|
|
@ -1,118 +1,118 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
# services.globalprotect = {
|
# services.globalprotect = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# settings = {
|
# settings = {
|
||||||
# "vpn1.usfca.edu" = {
|
# "vpn1.usfca.edu" = {
|
||||||
# openconnect-args = "";
|
# openconnect-args = "";
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# (llm.withPlugins (ps: with ps; [llm-openrouter]))
|
# (llm.withPlugins (ps: with ps; [llm-openrouter]))
|
||||||
# bash-language-server
|
# bash-language-server
|
||||||
# digital
|
# digital
|
||||||
# etcher
|
# etcher
|
||||||
# fontforge
|
# fontforge
|
||||||
# freecad
|
# freecad
|
||||||
# llm
|
# llm
|
||||||
# lychee # link checker
|
# lychee # link checker
|
||||||
# quickemu
|
# quickemu
|
||||||
# radicle-node
|
# radicle-node
|
||||||
# vulkan-loader
|
# vulkan-loader
|
||||||
# act
|
# act
|
||||||
# aichat
|
# aichat
|
||||||
# aider-chat
|
# aider-chat
|
||||||
# asm-lsp
|
# asm-lsp
|
||||||
b3sum
|
b3sum
|
||||||
devenv
|
devenv
|
||||||
direnv
|
direnv
|
||||||
gh
|
gh
|
||||||
# git-cliff
|
# git-cliff
|
||||||
hyperfine
|
hyperfine
|
||||||
jujutsu
|
jujutsu
|
||||||
just
|
just
|
||||||
lldb
|
lldb
|
||||||
# lua-language-server
|
# lua-language-server
|
||||||
# markdown-oxide # markdown lsp
|
# markdown-oxide # markdown lsp
|
||||||
qFlipper
|
qFlipper
|
||||||
qemu
|
qemu
|
||||||
sd
|
sd
|
||||||
sshfs
|
sshfs
|
||||||
taplo # toml lsp
|
taplo # toml lsp
|
||||||
tio
|
tio
|
||||||
tokei # repo code stats
|
tokei # repo code stats
|
||||||
typos
|
typos
|
||||||
|
|
||||||
# # databases
|
# # databases
|
||||||
# sqlite
|
# sqlite
|
||||||
# sqls
|
# sqls
|
||||||
# sqlx-cli
|
# sqlx-cli
|
||||||
# sea-orm-cli
|
# sea-orm-cli
|
||||||
# rainfrog
|
# rainfrog
|
||||||
|
|
||||||
# # arduino
|
# # arduino
|
||||||
# arduino-language-server
|
# arduino-language-server
|
||||||
# arduino-cli
|
# arduino-cli
|
||||||
# pkgsCross.avr.buildPackages.gcc
|
# pkgsCross.avr.buildPackages.gcc
|
||||||
# avrdude
|
# avrdude
|
||||||
# ravedude
|
# ravedude
|
||||||
|
|
||||||
# c
|
# c
|
||||||
clang
|
clang
|
||||||
clang-tools
|
clang-tools
|
||||||
gcc
|
gcc
|
||||||
gdb
|
gdb
|
||||||
gnumake
|
gnumake
|
||||||
|
|
||||||
# nix
|
# nix
|
||||||
nil
|
nil
|
||||||
alejandra
|
alejandra
|
||||||
|
|
||||||
# python
|
# python
|
||||||
# pypy3
|
# pypy3
|
||||||
python3
|
python3
|
||||||
# (python3.withPackages (ps:
|
# (python3.withPackages (ps:
|
||||||
# with ps; [
|
# with ps; [
|
||||||
# llm
|
# llm
|
||||||
# # llm-openrouter
|
# # llm-openrouter
|
||||||
# ]))
|
# ]))
|
||||||
# python310Packages.python-lsp-server
|
# python310Packages.python-lsp-server
|
||||||
uv
|
uv
|
||||||
ruff
|
ruff
|
||||||
|
|
||||||
# rust
|
# rust
|
||||||
cargo-binstall
|
cargo-binstall
|
||||||
bacon
|
bacon
|
||||||
cargo-expand
|
cargo-expand
|
||||||
cargo-feature
|
cargo-feature
|
||||||
cargo-generate
|
cargo-generate
|
||||||
cargo-watch
|
cargo-watch
|
||||||
elf2uf2-rs
|
elf2uf2-rs
|
||||||
flip-link
|
flip-link
|
||||||
mdbook
|
mdbook
|
||||||
mold-wrapped
|
mold-wrapped
|
||||||
probe-rs
|
probe-rs
|
||||||
rustup
|
rustup
|
||||||
sccache
|
sccache
|
||||||
trunk
|
trunk
|
||||||
wasm-bindgen-cli
|
wasm-bindgen-cli
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.flipperzero.enable = true;
|
hardware.flipperzero.enable = true;
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb"
|
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb"
|
||||||
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg"
|
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# virtualisation.docker = {
|
# virtualisation.docker = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# storageDriver = "btrfs";
|
# storageDriver = "btrfs";
|
||||||
# };
|
# };
|
||||||
# virtualisation.docker.rootless = {
|
# virtualisation.docker.rootless = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# setSocketVariable = true;
|
# setSocketVariable = true;
|
||||||
# };
|
# };
|
||||||
# users.extraGroups.docker.members = ["tao"];
|
# users.extraGroups.docker.members = ["tao"];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# boinctui
|
# boinctui
|
||||||
];
|
];
|
||||||
services.boinc = {
|
services.boinc = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.foldingathome = {
|
# services.foldingathome = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# team = 223518;
|
# team = 223518;
|
||||||
# user = "Tao_Tien";
|
# user = "Tao_Tien";
|
||||||
# extraArgs = ["--passkey=76ba03d55acf116776ba03d55acf1167"];
|
# extraArgs = ["--passkey=76ba03d55acf116776ba03d55acf1167"];
|
||||||
# };
|
# };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# remotePlay.openFirewall = true;
|
# remotePlay.openFirewall = true;
|
||||||
gamescopeSession.enable = false;
|
# gamescopeSession.enable = false;
|
||||||
};
|
};
|
||||||
programs.gamemode.enable = true;
|
programs.gamemode.enable = true;
|
||||||
programs.gamescope.enable = true;
|
programs.gamescope.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
temurin-jre-bin-17
|
temurin-jre-bin-17
|
||||||
];
|
];
|
||||||
networking.firewall.allowedTCPPorts = [25565];
|
networking.firewall.allowedTCPPorts = [25565];
|
||||||
|
|
||||||
services.snapper.configs = {
|
services.snapper.configs = {
|
||||||
home = {
|
home = {
|
||||||
SUBVOLUME = "/home";
|
SUBVOLUME = "/home";
|
||||||
ALLOW_USERS = ["mc"];
|
ALLOW_USERS = ["mc"];
|
||||||
TIMELINE_CREATE = true;
|
TIMELINE_CREATE = true;
|
||||||
TIMELINE_CLEANUP = true;
|
TIMELINE_CLEANUP = true;
|
||||||
TIMELINE_LIMIT_HOURLY = "5";
|
TIMELINE_LIMIT_HOURLY = "5";
|
||||||
TIMELINE_LIMIT_DAILY = "7";
|
TIMELINE_LIMIT_DAILY = "7";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
services.snapper.snapshotInterval = "*:0/5";
|
||||||
services.snapper.snapshotInterval = "*:0/5";
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,359 +1,359 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.services.snapper;
|
cfg = config.services.snapper;
|
||||||
|
|
||||||
mkValue = v:
|
mkValue = v:
|
||||||
if lib.isList v
|
if lib.isList v
|
||||||
then "\"${
|
then "\"${
|
||||||
lib.concatMapStringsSep " " (lib.escape [
|
lib.concatMapStringsSep " " (lib.escape [
|
||||||
"\\"
|
"\\"
|
||||||
" "
|
" "
|
||||||
])
|
])
|
||||||
v
|
v
|
||||||
}\""
|
}\""
|
||||||
else if v == true
|
else if v == true
|
||||||
then "yes"
|
then "yes"
|
||||||
else if v == false
|
else if v == false
|
||||||
then "no"
|
then "no"
|
||||||
else if lib.isString v
|
else if lib.isString v
|
||||||
then "\"${v}\""
|
then "\"${v}\""
|
||||||
else builtins.toJSON v;
|
else builtins.toJSON v;
|
||||||
|
|
||||||
mkKeyValue = k: v: "${k}=${mkValue v}";
|
mkKeyValue = k: v: "${k}=${mkValue v}";
|
||||||
|
|
||||||
# "it's recommended to always specify the filesystem type" -- man snapper-configs
|
# "it's recommended to always specify the filesystem type" -- man snapper-configs
|
||||||
defaultOf = k:
|
defaultOf = k:
|
||||||
if k == "FSTYPE"
|
if k == "FSTYPE"
|
||||||
then null
|
then null
|
||||||
else configOptions.${k}.default or null;
|
else configOptions.${k}.default or null;
|
||||||
|
|
||||||
safeStr =
|
safeStr =
|
||||||
lib.types.strMatching "[^\n\"]*"
|
lib.types.strMatching "[^\n\"]*"
|
||||||
// {
|
// {
|
||||||
description = "string without line breaks or quotes";
|
description = "string without line breaks or quotes";
|
||||||
descriptionClass = "conjunction";
|
descriptionClass = "conjunction";
|
||||||
|
};
|
||||||
|
|
||||||
|
intOrNumberOrRange = lib.types.either lib.types.ints.unsigned (
|
||||||
|
lib.types.strMatching "[[:digit:]]+(\-[[:digit:]]+)?"
|
||||||
|
// {
|
||||||
|
description = "string containing either a number or a range";
|
||||||
|
descriptionClass = "conjunction";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
configOptions = {
|
||||||
|
SUBVOLUME = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
description = ''
|
||||||
|
Path of the subvolume or mount point.
|
||||||
|
This path is a subvolume and has to contain a subvolume named
|
||||||
|
.snapshots.
|
||||||
|
See also man:snapper(8) section PERMISSIONS.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
FSTYPE = lib.mkOption {
|
||||||
|
type = lib.types.enum ["btrfs" "bcachefs"];
|
||||||
|
default = "btrfs";
|
||||||
|
description = ''
|
||||||
|
Filesystem type. Only btrfs is stable and tested.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
ALLOW_GROUPS = lib.mkOption {
|
||||||
|
type = lib.types.listOf safeStr;
|
||||||
|
default = [];
|
||||||
|
description = ''
|
||||||
|
List of groups allowed to operate with the config.
|
||||||
|
|
||||||
|
Also see the PERMISSIONS section in man:snapper(8).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
ALLOW_USERS = lib.mkOption {
|
||||||
|
type = lib.types.listOf safeStr;
|
||||||
|
default = [];
|
||||||
|
example = ["alice"];
|
||||||
|
description = ''
|
||||||
|
List of users allowed to operate with the config. "root" is always
|
||||||
|
implicitly included.
|
||||||
|
|
||||||
|
Also see the PERMISSIONS section in man:snapper(8).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_CLEANUP = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Defines whether the timeline cleanup algorithm should be run for the config.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_CREATE = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Defines whether hourly snapshots should be created.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_LIMIT_HOURLY = lib.mkOption {
|
||||||
|
type = intOrNumberOrRange;
|
||||||
|
default = 10;
|
||||||
|
description = ''
|
||||||
|
Limits for timeline cleanup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_LIMIT_DAILY = lib.mkOption {
|
||||||
|
type = intOrNumberOrRange;
|
||||||
|
default = 10;
|
||||||
|
description = ''
|
||||||
|
Limits for timeline cleanup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_LIMIT_WEEKLY = lib.mkOption {
|
||||||
|
type = intOrNumberOrRange;
|
||||||
|
default = 0;
|
||||||
|
description = ''
|
||||||
|
Limits for timeline cleanup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_LIMIT_MONTHLY = lib.mkOption {
|
||||||
|
type = intOrNumberOrRange;
|
||||||
|
default = 10;
|
||||||
|
description = ''
|
||||||
|
Limits for timeline cleanup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_LIMIT_QUARTERLY = lib.mkOption {
|
||||||
|
type = intOrNumberOrRange;
|
||||||
|
default = 0;
|
||||||
|
description = ''
|
||||||
|
Limits for timeline cleanup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
TIMELINE_LIMIT_YEARLY = lib.mkOption {
|
||||||
|
type = intOrNumberOrRange;
|
||||||
|
default = 10;
|
||||||
|
description = ''
|
||||||
|
Limits for timeline cleanup.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
intOrNumberOrRange = lib.types.either lib.types.ints.unsigned (
|
|
||||||
lib.types.strMatching "[[:digit:]]+(\-[[:digit:]]+)?"
|
|
||||||
// {
|
|
||||||
description = "string containing either a number or a range";
|
|
||||||
descriptionClass = "conjunction";
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
configOptions = {
|
|
||||||
SUBVOLUME = lib.mkOption {
|
|
||||||
type = lib.types.path;
|
|
||||||
description = ''
|
|
||||||
Path of the subvolume or mount point.
|
|
||||||
This path is a subvolume and has to contain a subvolume named
|
|
||||||
.snapshots.
|
|
||||||
See also man:snapper(8) section PERMISSIONS.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
FSTYPE = lib.mkOption {
|
|
||||||
type = lib.types.enum ["btrfs" "bcachefs"];
|
|
||||||
default = "btrfs";
|
|
||||||
description = ''
|
|
||||||
Filesystem type. Only btrfs is stable and tested.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
ALLOW_GROUPS = lib.mkOption {
|
|
||||||
type = lib.types.listOf safeStr;
|
|
||||||
default = [];
|
|
||||||
description = ''
|
|
||||||
List of groups allowed to operate with the config.
|
|
||||||
|
|
||||||
Also see the PERMISSIONS section in man:snapper(8).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
ALLOW_USERS = lib.mkOption {
|
|
||||||
type = lib.types.listOf safeStr;
|
|
||||||
default = [];
|
|
||||||
example = ["alice"];
|
|
||||||
description = ''
|
|
||||||
List of users allowed to operate with the config. "root" is always
|
|
||||||
implicitly included.
|
|
||||||
|
|
||||||
Also see the PERMISSIONS section in man:snapper(8).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_CLEANUP = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Defines whether the timeline cleanup algorithm should be run for the config.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_CREATE = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Defines whether hourly snapshots should be created.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_LIMIT_HOURLY = lib.mkOption {
|
|
||||||
type = intOrNumberOrRange;
|
|
||||||
default = 10;
|
|
||||||
description = ''
|
|
||||||
Limits for timeline cleanup.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_LIMIT_DAILY = lib.mkOption {
|
|
||||||
type = intOrNumberOrRange;
|
|
||||||
default = 10;
|
|
||||||
description = ''
|
|
||||||
Limits for timeline cleanup.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_LIMIT_WEEKLY = lib.mkOption {
|
|
||||||
type = intOrNumberOrRange;
|
|
||||||
default = 0;
|
|
||||||
description = ''
|
|
||||||
Limits for timeline cleanup.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_LIMIT_MONTHLY = lib.mkOption {
|
|
||||||
type = intOrNumberOrRange;
|
|
||||||
default = 10;
|
|
||||||
description = ''
|
|
||||||
Limits for timeline cleanup.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_LIMIT_QUARTERLY = lib.mkOption {
|
|
||||||
type = intOrNumberOrRange;
|
|
||||||
default = 0;
|
|
||||||
description = ''
|
|
||||||
Limits for timeline cleanup.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
TIMELINE_LIMIT_YEARLY = lib.mkOption {
|
|
||||||
type = intOrNumberOrRange;
|
|
||||||
default = 10;
|
|
||||||
description = ''
|
|
||||||
Limits for timeline cleanup.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
in {
|
||||||
options.services.snapper = {
|
options.services.snapper = {
|
||||||
snapshotRootOnBoot = lib.mkOption {
|
snapshotRootOnBoot = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Whether to snapshot root on boot
|
Whether to snapshot root on boot
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
snapshotInterval = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "hourly";
|
|
||||||
description = ''
|
|
||||||
Snapshot interval.
|
|
||||||
|
|
||||||
The format is described in
|
|
||||||
{manpage}`systemd.time(7)`.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
persistentTimer = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
example = true;
|
|
||||||
description = ''
|
|
||||||
Set the `Persistent` option for the
|
|
||||||
{manpage}`systemd.timer(5)`
|
|
||||||
which triggers the snapshot immediately if the last trigger
|
|
||||||
was missed (e.g. if the system was powered down).
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
cleanupInterval = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "1d";
|
|
||||||
description = ''
|
|
||||||
Cleanup interval.
|
|
||||||
|
|
||||||
The format is described in
|
|
||||||
{manpage}`systemd.time(7)`.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
filters = lib.mkOption {
|
|
||||||
type = lib.types.nullOr lib.types.lines;
|
|
||||||
default = null;
|
|
||||||
description = ''
|
|
||||||
Global display difference filter. See man:snapper(8) for more details.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
configs = lib.mkOption {
|
|
||||||
default = {};
|
|
||||||
example = lib.literalExpression ''
|
|
||||||
{
|
|
||||||
home = {
|
|
||||||
SUBVOLUME = "/home";
|
|
||||||
ALLOW_USERS = [ "alice" ];
|
|
||||||
TIMELINE_CREATE = true;
|
|
||||||
TIMELINE_CLEANUP = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
description = ''
|
|
||||||
Subvolume configuration. Any option mentioned in man:snapper-configs(5)
|
|
||||||
is valid here, even if NixOS doesn't document it.
|
|
||||||
'';
|
|
||||||
|
|
||||||
type = lib.types.attrsOf (
|
|
||||||
lib.types.submodule {
|
|
||||||
freeformType = lib.types.attrsOf (
|
|
||||||
lib.types.oneOf [
|
|
||||||
(lib.types.listOf safeStr)
|
|
||||||
lib.types.bool
|
|
||||||
safeStr
|
|
||||||
lib.types.number
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
options = configOptions;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf (cfg.configs != {}) (
|
|
||||||
let
|
|
||||||
documentation = [
|
|
||||||
"man:snapper(8)"
|
|
||||||
"man:snapper-configs(5)"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
environment = {
|
|
||||||
systemPackages = [pkgs.snapper];
|
|
||||||
|
|
||||||
# Note: snapper/config-templates/default is only needed for create-config
|
|
||||||
# which is not the NixOS way to configure.
|
|
||||||
etc =
|
|
||||||
{
|
|
||||||
"sysconfig/snapper".text = ''
|
|
||||||
SNAPPER_CONFIGS="${lib.concatStringsSep " " (builtins.attrNames cfg.configs)}"
|
|
||||||
'';
|
'';
|
||||||
}
|
};
|
||||||
// (lib.mapAttrs' (
|
|
||||||
name: subvolume:
|
snapshotInterval = lib.mkOption {
|
||||||
lib.nameValuePair "snapper/configs/${name}" {
|
type = lib.types.str;
|
||||||
text = lib.generators.toKeyValue {inherit mkKeyValue;} (
|
default = "hourly";
|
||||||
lib.filterAttrs (k: v: v != defaultOf k) subvolume
|
description = ''
|
||||||
);
|
Snapshot interval.
|
||||||
|
|
||||||
|
The format is described in
|
||||||
|
{manpage}`systemd.time(7)`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
persistentTimer = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
example = true;
|
||||||
|
description = ''
|
||||||
|
Set the `Persistent` option for the
|
||||||
|
{manpage}`systemd.timer(5)`
|
||||||
|
which triggers the snapshot immediately if the last trigger
|
||||||
|
was missed (e.g. if the system was powered down).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
cleanupInterval = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "1d";
|
||||||
|
description = ''
|
||||||
|
Cleanup interval.
|
||||||
|
|
||||||
|
The format is described in
|
||||||
|
{manpage}`systemd.time(7)`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
filters = lib.mkOption {
|
||||||
|
type = lib.types.nullOr lib.types.lines;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Global display difference filter. See man:snapper(8) for more details.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
configs = lib.mkOption {
|
||||||
|
default = {};
|
||||||
|
example = lib.literalExpression ''
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
SUBVOLUME = "/home";
|
||||||
|
ALLOW_USERS = [ "alice" ];
|
||||||
|
TIMELINE_CREATE = true;
|
||||||
|
TIMELINE_CLEANUP = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
)
|
|
||||||
cfg.configs)
|
|
||||||
// (lib.optionalAttrs (cfg.filters != null) {"snapper/filters/default.txt".text = cfg.filters;});
|
|
||||||
};
|
|
||||||
|
|
||||||
services.dbus.packages = [pkgs.snapper];
|
|
||||||
|
|
||||||
systemd.services.snapperd = {
|
|
||||||
description = "DBus interface for snapper";
|
|
||||||
inherit documentation;
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "dbus";
|
|
||||||
BusName = "org.opensuse.Snapper";
|
|
||||||
ExecStart = "${pkgs.snapper}/bin/snapperd";
|
|
||||||
CapabilityBoundingSet = "CAP_DAC_OVERRIDE CAP_FOWNER CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_SYS_ADMIN CAP_SYS_MODULE CAP_IPC_LOCK CAP_SYS_NICE";
|
|
||||||
LockPersonality = true;
|
|
||||||
NoNewPrivileges = false;
|
|
||||||
PrivateNetwork = true;
|
|
||||||
ProtectHostname = true;
|
|
||||||
RestrictAddressFamilies = "AF_UNIX";
|
|
||||||
RestrictRealtime = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.snapper-timeline = {
|
|
||||||
description = "Timeline of Snapper Snapshots";
|
|
||||||
inherit documentation;
|
|
||||||
requires = ["local-fs.target"];
|
|
||||||
serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --timeline";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.timers.snapper-timeline = {
|
|
||||||
wantedBy = ["timers.target"];
|
|
||||||
timerConfig = {
|
|
||||||
Persistent = cfg.persistentTimer;
|
|
||||||
OnCalendar = cfg.snapshotInterval;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.snapper-cleanup = {
|
|
||||||
description = "Cleanup of Snapper Snapshots";
|
|
||||||
inherit documentation;
|
|
||||||
serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --cleanup";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.timers.snapper-cleanup = {
|
|
||||||
description = "Cleanup of Snapper Snapshots";
|
|
||||||
inherit documentation;
|
|
||||||
wantedBy = ["timers.target"];
|
|
||||||
requires = ["local-fs.target"];
|
|
||||||
timerConfig.OnBootSec = "10m";
|
|
||||||
timerConfig.OnUnitActiveSec = cfg.cleanupInterval;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.snapper-boot = lib.mkIf cfg.snapshotRootOnBoot {
|
|
||||||
description = "Take snapper snapshot of root on boot";
|
|
||||||
inherit documentation;
|
|
||||||
serviceConfig.ExecStart = "${pkgs.snapper}/bin/snapper --config root create --cleanup-algorithm number --description boot";
|
|
||||||
serviceConfig.Type = "oneshot";
|
|
||||||
requires = ["local-fs.target"];
|
|
||||||
wantedBy = ["multi-user.target"];
|
|
||||||
unitConfig.ConditionPathExists = "/etc/snapper/configs/root";
|
|
||||||
};
|
|
||||||
|
|
||||||
assertions = lib.concatMap (
|
|
||||||
name: let
|
|
||||||
sub = cfg.configs.${name};
|
|
||||||
in
|
|
||||||
[
|
|
||||||
{
|
|
||||||
assertion = !(sub ? extraConfig);
|
|
||||||
message = ''
|
|
||||||
The option definition `services.snapper.configs.${name}.extraConfig' no longer has any effect; please remove it.
|
|
||||||
The contents of this option should be migrated to attributes on `services.snapper.configs.${name}'.
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
]
|
|
||||||
++ map
|
|
||||||
(attr: {
|
|
||||||
assertion = !(lib.hasAttr attr sub);
|
|
||||||
message = ''
|
|
||||||
The option definition `services.snapper.configs.${name}.${attr}' has been renamed to `services.snapper.configs.${name}.${lib.toUpper attr}'.
|
|
||||||
'';
|
'';
|
||||||
})
|
|
||||||
[
|
|
||||||
"fstype"
|
|
||||||
"subvolume"
|
|
||||||
]
|
|
||||||
) (lib.attrNames cfg.configs);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
meta.maintainers = with lib.maintainers; [Djabx];
|
description = ''
|
||||||
|
Subvolume configuration. Any option mentioned in man:snapper-configs(5)
|
||||||
|
is valid here, even if NixOS doesn't document it.
|
||||||
|
'';
|
||||||
|
|
||||||
|
type = lib.types.attrsOf (
|
||||||
|
lib.types.submodule {
|
||||||
|
freeformType = lib.types.attrsOf (
|
||||||
|
lib.types.oneOf [
|
||||||
|
(lib.types.listOf safeStr)
|
||||||
|
lib.types.bool
|
||||||
|
safeStr
|
||||||
|
lib.types.number
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
options = configOptions;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf (cfg.configs != {}) (
|
||||||
|
let
|
||||||
|
documentation = [
|
||||||
|
"man:snapper(8)"
|
||||||
|
"man:snapper-configs(5)"
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
environment = {
|
||||||
|
systemPackages = [pkgs.snapper];
|
||||||
|
|
||||||
|
# Note: snapper/config-templates/default is only needed for create-config
|
||||||
|
# which is not the NixOS way to configure.
|
||||||
|
etc =
|
||||||
|
{
|
||||||
|
"sysconfig/snapper".text = ''
|
||||||
|
SNAPPER_CONFIGS="${lib.concatStringsSep " " (builtins.attrNames cfg.configs)}"
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
// (lib.mapAttrs' (
|
||||||
|
name: subvolume:
|
||||||
|
lib.nameValuePair "snapper/configs/${name}" {
|
||||||
|
text = lib.generators.toKeyValue {inherit mkKeyValue;} (
|
||||||
|
lib.filterAttrs (k: v: v != defaultOf k) subvolume
|
||||||
|
);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
cfg.configs)
|
||||||
|
// (lib.optionalAttrs (cfg.filters != null) {"snapper/filters/default.txt".text = cfg.filters;});
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dbus.packages = [pkgs.snapper];
|
||||||
|
|
||||||
|
systemd.services.snapperd = {
|
||||||
|
description = "DBus interface for snapper";
|
||||||
|
inherit documentation;
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "dbus";
|
||||||
|
BusName = "org.opensuse.Snapper";
|
||||||
|
ExecStart = "${pkgs.snapper}/bin/snapperd";
|
||||||
|
CapabilityBoundingSet = "CAP_DAC_OVERRIDE CAP_FOWNER CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_SYS_ADMIN CAP_SYS_MODULE CAP_IPC_LOCK CAP_SYS_NICE";
|
||||||
|
LockPersonality = true;
|
||||||
|
NoNewPrivileges = false;
|
||||||
|
PrivateNetwork = true;
|
||||||
|
ProtectHostname = true;
|
||||||
|
RestrictAddressFamilies = "AF_UNIX";
|
||||||
|
RestrictRealtime = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.snapper-timeline = {
|
||||||
|
description = "Timeline of Snapper Snapshots";
|
||||||
|
inherit documentation;
|
||||||
|
requires = ["local-fs.target"];
|
||||||
|
serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --timeline";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.timers.snapper-timeline = {
|
||||||
|
wantedBy = ["timers.target"];
|
||||||
|
timerConfig = {
|
||||||
|
Persistent = cfg.persistentTimer;
|
||||||
|
OnCalendar = cfg.snapshotInterval;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.snapper-cleanup = {
|
||||||
|
description = "Cleanup of Snapper Snapshots";
|
||||||
|
inherit documentation;
|
||||||
|
serviceConfig.ExecStart = "${pkgs.snapper}/lib/snapper/systemd-helper --cleanup";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.timers.snapper-cleanup = {
|
||||||
|
description = "Cleanup of Snapper Snapshots";
|
||||||
|
inherit documentation;
|
||||||
|
wantedBy = ["timers.target"];
|
||||||
|
requires = ["local-fs.target"];
|
||||||
|
timerConfig.OnBootSec = "10m";
|
||||||
|
timerConfig.OnUnitActiveSec = cfg.cleanupInterval;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.snapper-boot = lib.mkIf cfg.snapshotRootOnBoot {
|
||||||
|
description = "Take snapper snapshot of root on boot";
|
||||||
|
inherit documentation;
|
||||||
|
serviceConfig.ExecStart = "${pkgs.snapper}/bin/snapper --config root create --cleanup-algorithm number --description boot";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
requires = ["local-fs.target"];
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
unitConfig.ConditionPathExists = "/etc/snapper/configs/root";
|
||||||
|
};
|
||||||
|
|
||||||
|
assertions = lib.concatMap (
|
||||||
|
name: let
|
||||||
|
sub = cfg.configs.${name};
|
||||||
|
in
|
||||||
|
[
|
||||||
|
{
|
||||||
|
assertion = !(sub ? extraConfig);
|
||||||
|
message = ''
|
||||||
|
The option definition `services.snapper.configs.${name}.extraConfig' no longer has any effect; please remove it.
|
||||||
|
The contents of this option should be migrated to attributes on `services.snapper.configs.${name}'.
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ map
|
||||||
|
(attr: {
|
||||||
|
assertion = !(lib.hasAttr attr sub);
|
||||||
|
message = ''
|
||||||
|
The option definition `services.snapper.configs.${name}.${attr}' has been renamed to `services.snapper.configs.${name}.${lib.toUpper attr}'.
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
[
|
||||||
|
"fstype"
|
||||||
|
"subvolume"
|
||||||
|
]
|
||||||
|
) (lib.attrNames cfg.configs);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [Djabx];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,48 +1,48 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
users.users.tao.packages = with pkgs; [
|
users.users.tao.packages = with pkgs; [
|
||||||
(python311Full.withPackages (ps:
|
(python311Full.withPackages (ps:
|
||||||
with ps; [
|
with ps; [
|
||||||
# bokeh
|
# bokeh
|
||||||
# datashader
|
# datashader
|
||||||
# hvplot
|
# hvplot
|
||||||
# ipywidgets
|
# ipywidgets
|
||||||
# ipywidgets
|
# ipywidgets
|
||||||
# linkify-it-py
|
# linkify-it-py
|
||||||
# markdown-it-py
|
# markdown-it-py
|
||||||
# mdit-py-plugins
|
# mdit-py-plugins
|
||||||
# nbclient
|
# nbclient
|
||||||
# numpy
|
# numpy
|
||||||
# pandas
|
# pandas
|
||||||
# panel
|
# panel
|
||||||
# plotly
|
# plotly
|
||||||
# pyparsing
|
# pyparsing
|
||||||
# pyserial
|
# pyserial
|
||||||
# scikit-learn
|
# scikit-learn
|
||||||
# scipy
|
# scipy
|
||||||
# streamz
|
# streamz
|
||||||
# tkinter
|
# tkinter
|
||||||
jupyter
|
jupyter
|
||||||
|
|
||||||
# pyserial
|
# pyserial
|
||||||
bokeh
|
bokeh
|
||||||
datashader
|
datashader
|
||||||
hvplot
|
hvplot
|
||||||
# ipython_blocking
|
# ipython_blocking
|
||||||
ipywidgets
|
ipywidgets
|
||||||
nbclient
|
nbclient
|
||||||
numpy
|
numpy
|
||||||
pandas
|
pandas
|
||||||
panel
|
panel
|
||||||
plotly
|
plotly
|
||||||
pyparsing
|
pyparsing
|
||||||
scikit-learn
|
scikit-learn
|
||||||
scipy
|
scipy
|
||||||
streamz
|
streamz
|
||||||
|
|
||||||
tkinter
|
tkinter
|
||||||
linkify-it-py
|
linkify-it-py
|
||||||
markdown-it-py
|
markdown-it-py
|
||||||
mdit-py-plugins
|
mdit-py-plugins
|
||||||
]))
|
]))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,62 +1,62 @@
|
||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
age.secrets.uwuraid.file = ../secrets/uwuraid.age;
|
age.secrets.uwuraid.file = ../secrets/uwuraid.age;
|
||||||
systemd.mounts = let
|
systemd.mounts = let
|
||||||
opts = {
|
opts = {
|
||||||
type = "cifs";
|
type = "cifs";
|
||||||
mountConfig = {Options = "noauto,noatime,async,users,rw,x-systemd.automount,credentials=${config.age.secrets.uwuraid.path},gid=users,file_mode=0770,dir_mode=0770";};
|
mountConfig = {Options = "noauto,noatime,async,users,rw,x-systemd.automount,credentials=${config.age.secrets.uwuraid.path},gid=users,file_mode=0770,dir_mode=0770";};
|
||||||
};
|
};
|
||||||
in [
|
in [
|
||||||
(opts
|
(opts
|
||||||
// {
|
// {
|
||||||
what = "//100.97.47.81/anime";
|
what = "//100.97.47.81/anime";
|
||||||
where = "/mnt/uwuraid/anime";
|
where = "/mnt/uwuraid/anime";
|
||||||
})
|
})
|
||||||
(opts
|
(opts
|
||||||
// {
|
// {
|
||||||
what = "//100.97.47.81/backup";
|
what = "//100.97.47.81/backup";
|
||||||
where = "/mnt/uwuraid/backup";
|
where = "/mnt/uwuraid/backup";
|
||||||
})
|
})
|
||||||
(opts
|
(opts
|
||||||
// {
|
// {
|
||||||
what = "//100.97.47.81/everything";
|
what = "//100.97.47.81/everything";
|
||||||
where = "/mnt/uwuraid/everything";
|
where = "/mnt/uwuraid/everything";
|
||||||
})
|
})
|
||||||
(opts
|
(opts
|
||||||
// {
|
// {
|
||||||
what = "//100.97.47.81/media";
|
what = "//100.97.47.81/media";
|
||||||
where = "/mnt/uwuraid/media";
|
where = "/mnt/uwuraid/media";
|
||||||
})
|
})
|
||||||
# (opts
|
# (opts
|
||||||
# // {
|
# // {
|
||||||
# what = "//100.97.47.81/isos";
|
# what = "//100.97.47.81/isos";
|
||||||
# where = "/mnt/uwuraid/isos";
|
# where = "/mnt/uwuraid/isos";
|
||||||
# })
|
# })
|
||||||
(opts
|
(opts
|
||||||
// {
|
// {
|
||||||
what = "//100.97.47.81/photos";
|
what = "//100.97.47.81/photos";
|
||||||
where = "/mnt/uwuraid/photos";
|
where = "/mnt/uwuraid/photos";
|
||||||
})
|
})
|
||||||
(opts
|
(opts
|
||||||
// {
|
// {
|
||||||
what = "//100.97.47.81/virginia";
|
what = "//100.97.47.81/virginia";
|
||||||
where = "/mnt/uwuraid/virginia";
|
where = "/mnt/uwuraid/virginia";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
systemd.automounts = let
|
systemd.automounts = let
|
||||||
opts = {
|
opts = {
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
automountConfig = {
|
automountConfig = {
|
||||||
TimeoutIdleSec = "60";
|
TimeoutIdleSec = "60";
|
||||||
# DirectoryMode
|
# DirectoryMode
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in [
|
in [
|
||||||
(opts // {where = "/mnt/uwuraid/anime";})
|
(opts // {where = "/mnt/uwuraid/anime";})
|
||||||
(opts // {where = "/mnt/uwuraid/backup";})
|
(opts // {where = "/mnt/uwuraid/backup";})
|
||||||
(opts // {where = "/mnt/uwuraid/everything";})
|
(opts // {where = "/mnt/uwuraid/everything";})
|
||||||
(opts // {where = "/mnt/uwuraid/media";})
|
(opts // {where = "/mnt/uwuraid/media";})
|
||||||
# (opts // {where = "/mnt/uwuraid/isos";})
|
# (opts // {where = "/mnt/uwuraid/isos";})
|
||||||
(opts // {where = "/mnt/uwuraid/photos";})
|
(opts // {where = "/mnt/uwuraid/photos";})
|
||||||
(opts // {where = "/mnt/uwuraid/virginia";})
|
(opts // {where = "/mnt/uwuraid/virginia";})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
348
flake.nix
348
flake.nix
|
|
@ -1,182 +1,182 @@
|
||||||
{
|
{
|
||||||
description = "we say NO to shitty OSes";
|
description = "we say NO to shitty OSes";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixos.url = "nixpkgs/nixos-24.05";
|
nixos.url = "nixpkgs/nixos-24.05";
|
||||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||||
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||||
nixos-hardware.url = "nixos-hardware/master";
|
nixos-hardware.url = "nixos-hardware/master";
|
||||||
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
|
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
|
||||||
agenix = {
|
agenix = {
|
||||||
url = "github:ryantm/agenix";
|
url = "github:ryantm/agenix";
|
||||||
inputs.darwin.follows = "";
|
inputs.darwin.follows = "";
|
||||||
|
};
|
||||||
|
disko = {
|
||||||
|
url = "github:nix-community/disko";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
# helix = {
|
||||||
|
# url = "github:mattwparas/helix/steel-event-system";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
# };
|
||||||
|
# nixos-cosmic = {
|
||||||
|
# url = "github:lilyinstarlight/nixos-cosmic";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
# };
|
||||||
|
zen-browser = {
|
||||||
|
url = "github:0xc000022070/zen-browser-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
disko = {
|
|
||||||
url = "github:nix-community/disko";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
# helix = {
|
|
||||||
# url = "github:mattwparas/helix/steel-event-system";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# };
|
|
||||||
# nixos-cosmic = {
|
|
||||||
# url = "github:lilyinstarlight/nixos-cosmic";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# };
|
|
||||||
zen-browser = {
|
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
extra-substituters = [
|
extra-substituters = [
|
||||||
# "https://cosmic.cachix.org/"
|
# "https://cosmic.cachix.org/"
|
||||||
# "https://helix.cachix.org/"
|
# "https://helix.cachix.org/"
|
||||||
"https://devenv.cachix.org"
|
"https://devenv.cachix.org"
|
||||||
];
|
];
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
# "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
# "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||||
# "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
# "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
nixos,
|
nixos,
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixos-facter-modules,
|
nixos-facter-modules,
|
||||||
nixos-hardware,
|
nixos-hardware,
|
||||||
determinate,
|
determinate,
|
||||||
agenix,
|
agenix,
|
||||||
disko,
|
disko,
|
||||||
home-manager,
|
home-manager,
|
||||||
# nixos-cosmic,
|
# nixos-cosmic,
|
||||||
zen-browser,
|
zen-browser,
|
||||||
...
|
...
|
||||||
} @ inputs: {
|
} @ inputs: {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
NOcomputer = nixpkgs.lib.nixosSystem {
|
NOcomputer = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {inherit inputs;};
|
specialArgs = {inherit inputs;};
|
||||||
modules = [
|
modules = [
|
||||||
disko.nixosModules.disko
|
disko.nixosModules.disko
|
||||||
nixos-hardware.nixosModules.common-cpu-amd
|
nixos-hardware.nixosModules.common-cpu-amd
|
||||||
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
||||||
nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
|
nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
|
||||||
# nixos-hardware.common.gpu.nvidia.ampere
|
# nixos-hardware.common.gpu.nvidia.ampere
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
./systems/BASED.nix
|
./systems/BASED.nix
|
||||||
./systems/NOcomputer.nix
|
./systems/NOcomputer.nix
|
||||||
./users/tao.nix
|
./users/tao.nix
|
||||||
./extras/uwuraid.nix
|
./extras/uwuraid.nix
|
||||||
./extras/dev.nix
|
./extras/dev.nix
|
||||||
./extras/gaming.nix
|
./extras/gaming.nix
|
||||||
./extras/folding.nix
|
./extras/folding.nix
|
||||||
# nixos-cosmic.nixosModules.default
|
# nixos-cosmic.nixosModules.default
|
||||||
./extras/cosmic.nix
|
./extras/cosmic.nix
|
||||||
];
|
];
|
||||||
};
|
|
||||||
NOlaptop = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = {inherit inputs;};
|
|
||||||
modules = [
|
|
||||||
disko.nixosModules.disko
|
|
||||||
./systems/disk-config.nix
|
|
||||||
nixos-hardware.nixosModules.framework-16-7040-amd
|
|
||||||
# nixos-facter-modules.nixosModules.facter
|
|
||||||
# {
|
|
||||||
# config.facter.reportPath =
|
|
||||||
# if builtins.pathExists ./systems/NOlaptop-facter.json
|
|
||||||
# then ./systems/NOlaptop-facter.json
|
|
||||||
# else throw "Have you forgotten to run nixos-anywhere with `--generate-hardware-config nixos-facter ./facter.json`?";
|
|
||||||
# }
|
|
||||||
agenix.nixosModules.default
|
|
||||||
determinate.nixosModules.default
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
./systems/BASED.nix
|
|
||||||
./systems/NOlaptop.nix
|
|
||||||
./users/tao.nix
|
|
||||||
./extras/uwuraid.nix
|
|
||||||
./extras/dev.nix
|
|
||||||
./extras/gaming.nix
|
|
||||||
# nixos-cosmic.nixosModules.default
|
|
||||||
./extras/cosmic.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
NOmom = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = {inherit inputs;};
|
|
||||||
modules = [
|
|
||||||
nixos-hardware.nixosModules.common-cpu-intel
|
|
||||||
# inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
|
||||||
agenix.nixosModules.default
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
./systems/BASED.nix
|
|
||||||
./systems/NOmom.nix
|
|
||||||
./users/tao.nix
|
|
||||||
./users/vy.nix
|
|
||||||
./extras/uwuraid.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
NOserver-minecraft = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = {inherit inputs;};
|
|
||||||
modules = [
|
|
||||||
agenix.nixosModules.default
|
|
||||||
disko.nixosModules.disko
|
|
||||||
{disko.devices.disk.disk1.device = "/dev/vda";}
|
|
||||||
./systems/NOserver.nix
|
|
||||||
./extras/NOserver-disk-config.nix
|
|
||||||
./extras/minecraft-server.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
bcachefs-iso = nixos.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules = [
|
|
||||||
# "${nixos}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
|
|
||||||
"${nixos}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix"
|
|
||||||
({
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
nixpkgs.config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
NOlaptop = nixpkgs.lib.nixosSystem {
|
||||||
helix
|
system = "x86_64-linux";
|
||||||
bat
|
specialArgs = {inherit inputs;};
|
||||||
bottom
|
modules = [
|
||||||
dumbpipe
|
disko.nixosModules.disko
|
||||||
sendme
|
./systems/disk-config.nix
|
||||||
git
|
nixos-hardware.nixosModules.framework-16-7040-amd
|
||||||
firefox
|
# nixos-facter-modules.nixosModules.facter
|
||||||
ouch
|
# {
|
||||||
pueue
|
# config.facter.reportPath =
|
||||||
ripgrep
|
# if builtins.pathExists ./systems/NOlaptop-facter.json
|
||||||
# rustdesk
|
# then ./systems/NOlaptop-facter.json
|
||||||
skim
|
# else throw "Have you forgotten to run nixos-anywhere with `--generate-hardware-config nixos-facter ./facter.json`?";
|
||||||
tree
|
# }
|
||||||
wezterm
|
agenix.nixosModules.default
|
||||||
wget
|
determinate.nixosModules.default
|
||||||
zstd
|
home-manager.nixosModules.home-manager
|
||||||
# bcachefs-tools
|
./systems/BASED.nix
|
||||||
];
|
./systems/NOlaptop.nix
|
||||||
# boot.supportedFilesystems = ["bcachefs"];
|
./users/tao.nix
|
||||||
boot.supportedFilesystems.btrfs = true;
|
./extras/uwuraid.nix
|
||||||
boot.supportedFilesystems.zfs = lib.mkForce false;
|
./extras/dev.nix
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
./extras/gaming.nix
|
||||||
isoImage.squashfsCompression = "zstd";
|
# nixos-cosmic.nixosModules.default
|
||||||
})
|
./extras/cosmic.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
NOmom = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = {inherit inputs;};
|
||||||
|
modules = [
|
||||||
|
nixos-hardware.nixosModules.common-cpu-intel
|
||||||
|
# inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||||
|
agenix.nixosModules.default
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
./systems/BASED.nix
|
||||||
|
./systems/NOmom.nix
|
||||||
|
./users/tao.nix
|
||||||
|
./users/vy.nix
|
||||||
|
./extras/uwuraid.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
NOserver-minecraft = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = {inherit inputs;};
|
||||||
|
modules = [
|
||||||
|
agenix.nixosModules.default
|
||||||
|
disko.nixosModules.disko
|
||||||
|
{disko.devices.disk.disk1.device = "/dev/vda";}
|
||||||
|
./systems/NOserver.nix
|
||||||
|
./extras/NOserver-disk-config.nix
|
||||||
|
./extras/minecraft-server.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
bcachefs-iso = nixos.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
# "${nixos}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
|
||||||
|
"${nixos}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix"
|
||||||
|
({
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
helix
|
||||||
|
bat
|
||||||
|
bottom
|
||||||
|
dumbpipe
|
||||||
|
sendme
|
||||||
|
git
|
||||||
|
firefox
|
||||||
|
ouch
|
||||||
|
pueue
|
||||||
|
ripgrep
|
||||||
|
# rustdesk
|
||||||
|
skim
|
||||||
|
tree
|
||||||
|
wezterm
|
||||||
|
wget
|
||||||
|
zstd
|
||||||
|
# bcachefs-tools
|
||||||
|
];
|
||||||
|
# boot.supportedFilesystems = ["bcachefs"];
|
||||||
|
boot.supportedFilesystems.btrfs = true;
|
||||||
|
boot.supportedFilesystems.zfs = lib.mkForce false;
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
isoImage.squashfsCompression = "zstd";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
let
|
let
|
||||||
# get these from /etc/ssh
|
# get these from /etc/ssh
|
||||||
NOcomputer = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPv53GM1uDDOdRxIlHmpf6x2y13yT5bFDNyrgDGLAR1l";
|
NOcomputer = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPv53GM1uDDOdRxIlHmpf6x2y13yT5bFDNyrgDGLAR1l";
|
||||||
NOlaptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILtdTREsBxzg/8s0lVCwL+r18qMP8glxAKaKEg+71I6m";
|
NOlaptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILtdTREsBxzg/8s0lVCwL+r18qMP8glxAKaKEg+71I6m";
|
||||||
NOmom = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdPvIo0P00I27i9XQFngsklw/dSyoFs7EgRt7RvkbSq";
|
NOmom = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdPvIo0P00I27i9XQFngsklw/dSyoFs7EgRt7RvkbSq";
|
||||||
systems = [NOcomputer NOlaptop NOmom];
|
systems = [NOcomputer NOlaptop NOmom];
|
||||||
in {
|
in {
|
||||||
"uwuraid.age".publicKeys = systems;
|
"uwuraid.age".publicKeys = systems;
|
||||||
"syncthing-NOcomputer.age".publicKeys = systems;
|
"syncthing-NOcomputer.age".publicKeys = systems;
|
||||||
"syncthing-NOlaptop.age".publicKeys = systems;
|
"syncthing-NOlaptop.age".publicKeys = systems;
|
||||||
"syncthing-uwuraid.age".publicKeys = systems;
|
"syncthing-uwuraid.age".publicKeys = systems;
|
||||||
"password-tao.age".publicKeys = systems;
|
"password-tao.age".publicKeys = systems;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,193 +1,193 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# inputs.helix.packages.${pkgs.system}.default
|
# inputs.helix.packages.${pkgs.system}.default
|
||||||
# screen
|
# screen
|
||||||
bat
|
bat
|
||||||
bottom
|
bottom
|
||||||
cifs-utils
|
cifs-utils
|
||||||
du-dust
|
du-dust
|
||||||
dumbpipe
|
dumbpipe
|
||||||
exfatprogs
|
exfatprogs
|
||||||
fastfetch
|
fastfetch
|
||||||
ffmpeg
|
ffmpeg
|
||||||
firefox
|
firefox
|
||||||
git
|
git
|
||||||
helix
|
helix
|
||||||
inputs.agenix.packages.${pkgs.system}.default
|
inputs.agenix.packages.${pkgs.system}.default
|
||||||
inputs.zen-browser.packages."${system}".default
|
inputs.zen-browser.packages."${system}".default
|
||||||
mesa
|
mesa
|
||||||
mpv
|
mpv
|
||||||
ouch
|
ouch
|
||||||
pueue
|
pueue
|
||||||
ripgrep
|
ripgrep
|
||||||
# rustdesk
|
# rustdesk
|
||||||
sendme
|
sendme
|
||||||
skim
|
skim
|
||||||
tree
|
tree
|
||||||
wezterm
|
wezterm
|
||||||
wget
|
wget
|
||||||
zstd
|
zstd
|
||||||
];
|
|
||||||
programs.partition-manager.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
# programs.nh = {
|
|
||||||
# enable = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
programs.firefox.policies = {
|
|
||||||
DisablePocket = true;
|
|
||||||
PasswordManagerEnabled = false;
|
|
||||||
NoDefaultBookmarks = false;
|
|
||||||
};
|
|
||||||
programs.firefox.preferences = {
|
|
||||||
"media.ffmpeg.vaapi.enabled" = true;
|
|
||||||
|
|
||||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
|
||||||
"widget.use-xdg-desktop-portal.location" = 1;
|
|
||||||
"widget.use-xdg-desktop-portal.mime-handler" = 1;
|
|
||||||
"widget.use-xdg-desktop-portal.open-uri" = 1;
|
|
||||||
"widget.use-xdg-desktop-portal.settings" = 1;
|
|
||||||
|
|
||||||
"accessibility.browsewithcaret_shortcut.enabled" = false;
|
|
||||||
"browser.bookmarks.restore_default_bookmarks" = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.graphics.enable = true;
|
|
||||||
# hardware.opengl = {
|
|
||||||
# enable = true;
|
|
||||||
# extraPackaged = with pkgs; [
|
|
||||||
# libvdpau-va-gl
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
services.xserver.enable = lib.mkDefault true;
|
|
||||||
services.xserver.excludePackages = [pkgs.xterm];
|
|
||||||
services.xserver.xkb.layout = "us";
|
|
||||||
systemd.services.display-manager.restartIfChanged = false;
|
|
||||||
services.displayManager.sddm.enable = lib.mkDefault true;
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
|
||||||
services.desktopManager.plasma6.enable = lib.mkDefault true;
|
|
||||||
environment.plasma6.excludePackages = with pkgs; [
|
|
||||||
kdePackages.elisa
|
|
||||||
kdePackages.konsole
|
|
||||||
kdePackages.gwenview
|
|
||||||
kdePackages.kate
|
|
||||||
xterm
|
|
||||||
];
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
|
||||||
];
|
|
||||||
programs.ssh.startAgent = true;
|
|
||||||
|
|
||||||
services.printing.enable = lib.mkDefault true;
|
|
||||||
services.printing.drivers = with pkgs; [gutenprint gutenprintBin];
|
|
||||||
services.avahi = {
|
|
||||||
enable = true;
|
|
||||||
nssmdns4 = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
networking.networkmanager.wifi.backend = "iwd";
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
services.resolved.enable = true;
|
|
||||||
networking.wireless.iwd = {
|
|
||||||
enable = true;
|
|
||||||
settings.IPv6.Enabled = true;
|
|
||||||
settings.Settings.AutoConnect = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.smartd.enable = true;
|
|
||||||
# services.btrfs.autoScrub.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
# hardware.pulseaudio.enable = lib.mkDefault false;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = lib.mkDefault true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
wireplumber.enable = lib.mkDefault true;
|
|
||||||
};
|
|
||||||
|
|
||||||
security.sudo-rs.enable = true;
|
|
||||||
security.sudo.enable = false;
|
|
||||||
|
|
||||||
i18n.inputMethod = {
|
|
||||||
enable = true;
|
|
||||||
type = "fcitx5";
|
|
||||||
fcitx5.addons = with pkgs; [
|
|
||||||
fcitx5-gtk
|
|
||||||
fcitx5-mozc
|
|
||||||
fcitx5-rime
|
|
||||||
];
|
];
|
||||||
};
|
programs.partition-manager.enable = lib.mkDefault true;
|
||||||
|
|
||||||
environment.variables = {
|
# programs.nh = {
|
||||||
EDITOR = "hx";
|
# enable = true;
|
||||||
VISUAL = "hx";
|
# };
|
||||||
PAGER = "bat";
|
|
||||||
SKIM_DEFAULT_COMMAND = "rg --files";
|
|
||||||
};
|
|
||||||
environment.sessionVariables = {
|
|
||||||
EDITOR = "hx";
|
|
||||||
VISUAL = "hx";
|
|
||||||
PAGER = "bat";
|
|
||||||
SKIM_DEFAULT_COMMAND = "rg --files";
|
|
||||||
};
|
|
||||||
|
|
||||||
time.timeZone = lib.mkDefault "US/Pacific";
|
programs.firefox.enable = true;
|
||||||
# services.automatic-timezoned.enable = lib.mkDefault true;
|
programs.firefox.policies = {
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
DisablePocket = true;
|
||||||
# i18n.extraLocaleSettings = {
|
PasswordManagerEnabled = false;
|
||||||
# LC_CTYPE = "en_US.UTF-8";
|
NoDefaultBookmarks = false;
|
||||||
# LC_MESSAGES = "en_US.UTF-8";
|
};
|
||||||
# LC_ALL = "en_US.UTF-8";
|
programs.firefox.preferences = {
|
||||||
# };
|
"media.ffmpeg.vaapi.enabled" = true;
|
||||||
|
|
||||||
systemd.extraConfig = ''
|
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||||
DefaultTimeoutStopSec=15s
|
"widget.use-xdg-desktop-portal.location" = 1;
|
||||||
'';
|
"widget.use-xdg-desktop-portal.mime-handler" = 1;
|
||||||
|
"widget.use-xdg-desktop-portal.open-uri" = 1;
|
||||||
|
"widget.use-xdg-desktop-portal.settings" = 1;
|
||||||
|
|
||||||
zramSwap = {
|
"accessibility.browsewithcaret_shortcut.enabled" = false;
|
||||||
enable = true;
|
"browser.bookmarks.restore_default_bookmarks" = false;
|
||||||
algorithm = "zstd";
|
};
|
||||||
};
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = lib.mkDefault true;
|
hardware.graphics.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
|
# hardware.opengl = {
|
||||||
boot.loader.timeout = lib.mkForce 1;
|
# enable = true;
|
||||||
# boot.supportedFilesystems = ["ntfs" "btrfs"];
|
# extraPackaged = with pkgs; [
|
||||||
hardware.enableAllFirmware = true;
|
# libvdpau-va-gl
|
||||||
hardware.bluetooth.enable = lib.mkDefault true;
|
# ];
|
||||||
# hardware.bluetooth.settings.General.Experimental = true;
|
# };
|
||||||
|
services.xserver.enable = lib.mkDefault true;
|
||||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
services.xserver.excludePackages = [pkgs.xterm];
|
||||||
|
services.xserver.xkb.layout = "us";
|
||||||
nix.settings = {
|
systemd.services.display-manager.restartIfChanged = false;
|
||||||
experimental-features = "nix-command flakes";
|
services.displayManager.sddm.enable = lib.mkDefault true;
|
||||||
auto-optimise-store = true;
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
# adding logged in users allows for passwordless root
|
services.desktopManager.plasma6.enable = lib.mkDefault true;
|
||||||
# trusted-users = ["root"];
|
environment.plasma6.excludePackages = with pkgs; [
|
||||||
system-features = [
|
kdePackages.elisa
|
||||||
"benchmark"
|
kdePackages.konsole
|
||||||
"big-parallel"
|
kdePackages.gwenview
|
||||||
"gccarch-znver3"
|
kdePackages.kate
|
||||||
"gccarch-znver4"
|
xterm
|
||||||
"kvm"
|
|
||||||
"nixos-test"
|
|
||||||
];
|
];
|
||||||
};
|
|
||||||
nixpkgs.config = {allowUnfree = true;};
|
|
||||||
nix.nixPath = ["nixpkgs=${pkgs.path}"];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
services.openssh.enable = true;
|
||||||
system.stateVersion = lib.mkDefault "23.05";
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
];
|
||||||
|
programs.ssh.startAgent = true;
|
||||||
|
|
||||||
|
services.printing.enable = lib.mkDefault true;
|
||||||
|
services.printing.drivers = with pkgs; [gutenprint gutenprintBin];
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
networking.networkmanager.wifi.backend = "iwd";
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
services.resolved.enable = true;
|
||||||
|
networking.wireless.iwd = {
|
||||||
|
enable = true;
|
||||||
|
settings.IPv6.Enabled = true;
|
||||||
|
settings.Settings.AutoConnect = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.smartd.enable = true;
|
||||||
|
# services.btrfs.autoScrub.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# hardware.pulseaudio.enable = lib.mkDefault false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = lib.mkDefault true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
wireplumber.enable = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo-rs.enable = true;
|
||||||
|
security.sudo.enable = false;
|
||||||
|
|
||||||
|
i18n.inputMethod = {
|
||||||
|
enable = true;
|
||||||
|
type = "fcitx5";
|
||||||
|
fcitx5.addons = with pkgs; [
|
||||||
|
fcitx5-gtk
|
||||||
|
fcitx5-mozc
|
||||||
|
fcitx5-rime
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.variables = {
|
||||||
|
EDITOR = "hx";
|
||||||
|
VISUAL = "hx";
|
||||||
|
PAGER = "bat";
|
||||||
|
SKIM_DEFAULT_COMMAND = "rg --files";
|
||||||
|
};
|
||||||
|
environment.sessionVariables = {
|
||||||
|
EDITOR = "hx";
|
||||||
|
VISUAL = "hx";
|
||||||
|
PAGER = "bat";
|
||||||
|
SKIM_DEFAULT_COMMAND = "rg --files";
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = lib.mkDefault "US/Pacific";
|
||||||
|
# services.automatic-timezoned.enable = lib.mkDefault true;
|
||||||
|
# i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
# i18n.extraLocaleSettings = {
|
||||||
|
# LC_CTYPE = "en_US.UTF-8";
|
||||||
|
# LC_MESSAGES = "en_US.UTF-8";
|
||||||
|
# LC_ALL = "en_US.UTF-8";
|
||||||
|
# };
|
||||||
|
|
||||||
|
systemd.extraConfig = ''
|
||||||
|
DefaultTimeoutStopSec=15s
|
||||||
|
'';
|
||||||
|
|
||||||
|
zramSwap = {
|
||||||
|
enable = true;
|
||||||
|
algorithm = "zstd";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = lib.mkDefault true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
|
||||||
|
boot.loader.timeout = lib.mkForce 1;
|
||||||
|
# boot.supportedFilesystems = ["ntfs" "btrfs"];
|
||||||
|
hardware.enableAllFirmware = true;
|
||||||
|
hardware.bluetooth.enable = lib.mkDefault true;
|
||||||
|
# hardware.bluetooth.settings.General.Experimental = true;
|
||||||
|
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
experimental-features = "nix-command flakes";
|
||||||
|
auto-optimise-store = true;
|
||||||
|
# adding logged in users allows for passwordless root
|
||||||
|
# trusted-users = ["root"];
|
||||||
|
system-features = [
|
||||||
|
"benchmark"
|
||||||
|
"big-parallel"
|
||||||
|
"gccarch-znver3"
|
||||||
|
"gccarch-znver4"
|
||||||
|
"kvm"
|
||||||
|
"nixos-test"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
nixpkgs.config = {allowUnfree = true;};
|
||||||
|
nix.nixPath = ["nixpkgs=${pkgs.path}"];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
system.stateVersion = lib.mkDefault "23.05";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,97 +1,97 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nvtopPackages.nvidia
|
nvtopPackages.nvidia
|
||||||
# egl-wayland
|
# egl-wayland
|
||||||
# gpt4all-chat
|
# gpt4all-chat
|
||||||
# nvidia-vaapi-driver
|
# nvidia-vaapi-driver
|
||||||
# foldingathome
|
# foldingathome
|
||||||
# gwe
|
# gwe
|
||||||
# openrgb
|
# openrgb
|
||||||
];
|
];
|
||||||
services.hardware.openrgb.enable = true;
|
services.hardware.openrgb.enable = true;
|
||||||
|
|
||||||
services.tailscale.useRoutingFeatures = "both";
|
services.tailscale.useRoutingFeatures = "both";
|
||||||
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||||
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
# wayland chromium workaround
|
# wayland chromium workaround
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
# firefox nvidia-vaapi-driver
|
# firefox nvidia-vaapi-driver
|
||||||
# MOZ_DISABLE_RDD_SANDBOX = "1";
|
# MOZ_DISABLE_RDD_SANDBOX = "1";
|
||||||
# LIBVA_DRIVER_NAME = "nvidia";
|
# LIBVA_DRIVER_NAME = "nvidia";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
powerManagement.enable = true;
|
powerManagement.enable = true;
|
||||||
# options: production, beta, vulkan_beta, latest
|
# options: production, beta, vulkan_beta, latest
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||||
open = true;
|
open = true;
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
};
|
};
|
||||||
systemd.services.nvpl = {
|
systemd.services.nvpl = {
|
||||||
description = "Increase GPU power limit to 400w";
|
description = "Increase GPU power limit to 400w";
|
||||||
script = "/run/current-system/sw/bin/nvidia-smi -pl=400";
|
script = "/run/current-system/sw/bin/nvidia-smi -pl=400";
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.packages = [pkgs.openrgb];
|
services.udev.packages = [pkgs.openrgb];
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3c5", MODE="0666"
|
KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3c5", MODE="0666"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_zen;
|
# boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||||
boot.kernelModules = ["i2c-dev" "kvm-amd" "nct6775"];
|
boot.kernelModules = ["i2c-dev" "kvm-amd" "nct6775"];
|
||||||
boot.kernelParams = ["nvidia-drm.modeset=1"];
|
boot.kernelParams = ["nvidia-drm.modeset=1"];
|
||||||
# boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
# boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
||||||
# boot.blacklistedKernelModules = with config.boot.kernelPackages; [ k10temp ];
|
# boot.blacklistedKernelModules = with config.boot.kernelPackages; [ k10temp ];
|
||||||
|
|
||||||
fileSystems."/home" = {
|
fileSystems."/home" = {
|
||||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=home_snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
options = ["subvol=home_snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/home/.snapshots" = {
|
fileSystems."/home/.snapshots" = {
|
||||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=home_snaps/" "noatime" "compress-force=zstd:3" "discard=async"];
|
options = ["subvol=home_snaps/" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/home/tao/games" = {
|
fileSystems."/home/tao/games" = {
|
||||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/2B28-151D";
|
device = "/dev/disk/by-uuid/2B28-151D";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/var" = {
|
fileSystems."/var" = {
|
||||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=nixos/var" "noatime" "compress-force=zstd:3" "discard=async"];
|
options = ["subvol=nixos/var" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/tmp" = {
|
fileSystems."/tmp" = {
|
||||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=nixos/tmp" "discard=async"];
|
options = ["subvol=nixos/tmp" "discard=async"];
|
||||||
};
|
};
|
||||||
swapDevices = [{device = "/dev/disk/by-uuid/ca0ed3d7-8758-4ac7-b016-8b4cd9608ded";}];
|
swapDevices = [{device = "/dev/disk/by-uuid/ca0ed3d7-8758-4ac7-b016-8b4cd9608ded";}];
|
||||||
|
|
||||||
# windows can suck my ass
|
# windows can suck my ass
|
||||||
time.hardwareClockInLocalTime = true;
|
time.hardwareClockInLocalTime = true;
|
||||||
|
|
||||||
networking.hostName = "NOcomputer";
|
networking.hostName = "NOcomputer";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,103 +1,103 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# services.pipewire.wireplumber.extraConfig = {
|
# services.pipewire.wireplumber.extraConfig = {
|
||||||
# "wireplumber.settings" = {
|
# "wireplumber.settings" = {
|
||||||
# "device.routes.default-source-volume" = 0.42;
|
# "device.routes.default-source-volume" = 0.42;
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
services.rsyslogd = {
|
services.rsyslogd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
module(load="imudp")
|
module(load="imudp")
|
||||||
input(type="imudp" port="514")
|
input(type="imudp" port="514")
|
||||||
|
|
||||||
THENAS.* -/var/log/THENAS
|
THENAS.* -/var/log/THENAS
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# boot.kernelPatches = [
|
||||||
|
# (lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.11")
|
||||||
|
# {
|
||||||
|
# name = "cros_ec_lpc";
|
||||||
|
# patch = pkgs.fetchpatch {
|
||||||
|
# url = "https://patchwork.kernel.org/series/840830/mbox/";
|
||||||
|
# sha256 = "sha256-7jSEAGInFC+a+ozCyD4dFz3Qgh2JrHskwz7UfswizFw=";
|
||||||
|
# };
|
||||||
|
# })
|
||||||
|
# ];
|
||||||
|
# nixpkgs.overlays = [
|
||||||
|
# (final: prev: {
|
||||||
|
# libinput = prev.libinput.overrideAttrs (old: {
|
||||||
|
# patches =
|
||||||
|
# (old.patches or [])
|
||||||
|
# ++ [
|
||||||
|
# ../extras/libinput-delay.patch
|
||||||
|
# ];
|
||||||
|
# });
|
||||||
|
# })
|
||||||
|
# ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
fw-ectool
|
||||||
|
framework-tool
|
||||||
|
nvtopPackages.amd
|
||||||
|
];
|
||||||
|
|
||||||
|
services.fwupd.enable = true;
|
||||||
|
services.tailscale.useRoutingFeatures = "client";
|
||||||
|
systemd.services."backlight@backlight:amdgpu_bl2".enable = false;
|
||||||
|
|
||||||
|
nix.buildMachines = [
|
||||||
|
{
|
||||||
|
hostName = "nocomputer";
|
||||||
|
systems = ["x86_64-linux" "i686-linux"];
|
||||||
|
supportedFeatures = [
|
||||||
|
"benchmark"
|
||||||
|
"big-parallel"
|
||||||
|
"gccarch-znver4"
|
||||||
|
"kvm"
|
||||||
|
"nixos-test"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
nix.extraOptions = ''
|
||||||
|
builders-use-substitutes = true
|
||||||
'';
|
'';
|
||||||
};
|
nix.distributedBuilds = true;
|
||||||
|
|
||||||
# boot.kernelPatches = [
|
services.udev.extraRules = ''
|
||||||
# (lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.11")
|
# ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness"
|
||||||
# {
|
# ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
|
||||||
# name = "cros_ec_lpc";
|
|
||||||
# patch = pkgs.fetchpatch {
|
|
||||||
# url = "https://patchwork.kernel.org/series/840830/mbox/";
|
|
||||||
# sha256 = "sha256-7jSEAGInFC+a+ozCyD4dFz3Qgh2JrHskwz7UfswizFw=";
|
|
||||||
# };
|
|
||||||
# })
|
|
||||||
# ];
|
|
||||||
# nixpkgs.overlays = [
|
|
||||||
# (final: prev: {
|
|
||||||
# libinput = prev.libinput.overrideAttrs (old: {
|
|
||||||
# patches =
|
|
||||||
# (old.patches or [])
|
|
||||||
# ++ [
|
|
||||||
# ../extras/libinput-delay.patch
|
|
||||||
# ];
|
|
||||||
# });
|
|
||||||
# })
|
|
||||||
# ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
# ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled"
|
||||||
fw-ectool
|
# ACTION=="add|change", KERNEL=="i2c", SUBSYSTEM=="i2c", DEVPATH=="/sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00", ATTR{power/wakeup}="disabled"
|
||||||
framework-tool
|
'';
|
||||||
nvtopPackages.amd
|
|
||||||
];
|
|
||||||
|
|
||||||
services.fwupd.enable = true;
|
services.fprintd.enable = true;
|
||||||
services.tailscale.useRoutingFeatures = "client";
|
|
||||||
systemd.services."backlight@backlight:amdgpu_bl2".enable = false;
|
|
||||||
|
|
||||||
nix.buildMachines = [
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
{
|
# boot.initrd.availableKernelModules = [
|
||||||
hostName = "nocomputer";
|
# "nvme"
|
||||||
systems = ["x86_64-linux" "i686-linux"];
|
# "sd_mod"
|
||||||
supportedFeatures = [
|
# "thunderbolt"
|
||||||
"benchmark"
|
# "usb_storage"
|
||||||
"big-parallel"
|
# "xhci_pci"
|
||||||
"gccarch-znver4"
|
# "usbhid"
|
||||||
"kvm"
|
# "uas"
|
||||||
"nixos-test"
|
# ];
|
||||||
];
|
boot.kernelParams = [
|
||||||
}
|
"amdgpu.abmlevel=1"
|
||||||
];
|
# "amdgpu.dcdebugmask=0x400"
|
||||||
nix.extraOptions = ''
|
# "mem_sleep_default=deep"
|
||||||
builders-use-substitutes = true
|
];
|
||||||
'';
|
# boot.kernelModules = ["kvm-amd"];
|
||||||
nix.distributedBuilds = true;
|
powerManagement.cpuFreqGovernor = "powersave";
|
||||||
|
systemd.sleep.extraConfig = "HibernateDelaySec=360m";
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
networking.hostName = "NOlaptop";
|
||||||
# ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness"
|
|
||||||
# ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
|
|
||||||
|
|
||||||
# ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled"
|
|
||||||
# ACTION=="add|change", KERNEL=="i2c", SUBSYSTEM=="i2c", DEVPATH=="/sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00", ATTR{power/wakeup}="disabled"
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.fprintd.enable = true;
|
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
# boot.initrd.availableKernelModules = [
|
|
||||||
# "nvme"
|
|
||||||
# "sd_mod"
|
|
||||||
# "thunderbolt"
|
|
||||||
# "usb_storage"
|
|
||||||
# "xhci_pci"
|
|
||||||
# "usbhid"
|
|
||||||
# "uas"
|
|
||||||
# ];
|
|
||||||
boot.kernelParams = [
|
|
||||||
"amdgpu.abmlevel=1"
|
|
||||||
# "amdgpu.dcdebugmask=0x400"
|
|
||||||
# "mem_sleep_default=deep"
|
|
||||||
];
|
|
||||||
# boot.kernelModules = ["kvm-amd"];
|
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
|
||||||
systemd.sleep.extraConfig = "HibernateDelaySec=360m";
|
|
||||||
|
|
||||||
networking.hostName = "NOlaptop";
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,111 +1,111 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# prescurve
|
# prescurve
|
||||||
# libsForQt5.skanpage
|
# libsForQt5.skanpage
|
||||||
intel-gpu-tools
|
intel-gpu-tools
|
||||||
powertop
|
powertop
|
||||||
fw-ectool
|
fw-ectool
|
||||||
|
|
||||||
libimobiledevice
|
libimobiledevice
|
||||||
ifuse
|
ifuse
|
||||||
];
|
];
|
||||||
|
|
||||||
services.tailscale.useRoutingFeatures = "client";
|
services.tailscale.useRoutingFeatures = "client";
|
||||||
|
|
||||||
powerManagement.powertop.enable = true;
|
powerManagement.powertop.enable = true;
|
||||||
services.fwupd.enable = true;
|
services.fwupd.enable = true;
|
||||||
services.fprintd.enable = true;
|
services.fprintd.enable = true;
|
||||||
hardware.sensor.iio.enable = true;
|
hardware.sensor.iio.enable = true;
|
||||||
services.usbmuxd.enable = true;
|
services.usbmuxd.enable = true;
|
||||||
services.usbmuxd.package = pkgs.usbmuxd2;
|
services.usbmuxd.package = pkgs.usbmuxd2;
|
||||||
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
|
|
||||||
# systemd.user.services.backlight = {
|
# systemd.user.services.backlight = {
|
||||||
# # description = "";
|
# # description = "";
|
||||||
# ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight";
|
# ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight";
|
||||||
# Restart = "on-failure";
|
# Restart = "on-failure";
|
||||||
# wantedBy = [ "default.target" ];
|
# wantedBy = [ "default.target" ];
|
||||||
# };
|
# };
|
||||||
# hardware.sane = {
|
# hardware.sane = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# extraBackends = [ pkgs.epkowa ];
|
# extraBackends = [ pkgs.epkowa ];
|
||||||
# };
|
# };
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
# Ethernet expansion card
|
# Ethernet expansion card
|
||||||
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
||||||
|
|
||||||
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness"
|
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness"
|
||||||
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
|
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
fileSystems."/home" = {
|
fileSystems."/home" = {
|
||||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=home-snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
options = ["subvol=home-snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/home/tao/Games" = {
|
fileSystems."/home/tao/Games" = {
|
||||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
||||||
};
|
};
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||||
};
|
};
|
||||||
swapDevices = [{device = "/dev/disk/by-uuid/ca55d0ea-c0db-44c5-af3a-e38eec803929";}];
|
swapDevices = [{device = "/dev/disk/by-uuid/ca55d0ea-c0db-44c5-af3a-e38eec803929";}];
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
"thunderbolt"
|
"thunderbolt"
|
||||||
"usb_storage"
|
"usb_storage"
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
];
|
];
|
||||||
boot.kernelParams = [
|
boot.kernelParams = [
|
||||||
"acpi_osi=\"!Windows 2020\""
|
"acpi_osi=\"!Windows 2020\""
|
||||||
"nvme.noacpi=1"
|
"nvme.noacpi=1"
|
||||||
"i915.enable_psr=1"
|
"i915.enable_psr=1"
|
||||||
];
|
];
|
||||||
boot.blacklistedKernelModules = ["cros-usbpd-charger"];
|
boot.blacklistedKernelModules = ["cros-usbpd-charger"];
|
||||||
boot.extraModprobeConfig = ''options snd-hda-intel model=dell-headset-multi'';
|
boot.extraModprobeConfig = ''options snd-hda-intel model=dell-headset-multi'';
|
||||||
boot.kernelModules = ["kvm-intel"];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
powerManagement.cpuFreqGovernor = "powersave";
|
powerManagement.cpuFreqGovernor = "powersave";
|
||||||
systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
||||||
# boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
# boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||||
# boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
# boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||||
|
|
||||||
nix.buildMachines = [
|
nix.buildMachines = [
|
||||||
{
|
{
|
||||||
hostName = "nocomputer";
|
hostName = "nocomputer";
|
||||||
systems = ["x86_64-linux" "i686-linux"];
|
systems = ["x86_64-linux" "i686-linux"];
|
||||||
supportedFeatures = [
|
supportedFeatures = [
|
||||||
"benchmark"
|
"benchmark"
|
||||||
"big-parallel"
|
"big-parallel"
|
||||||
"gccarch-znver4"
|
"gccarch-znver4"
|
||||||
"kvm"
|
"kvm"
|
||||||
"nixos-test"
|
"nixos-test"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
hostName = "nolaptop";
|
hostName = "nolaptop";
|
||||||
systems = ["x86_64-linux" "i686-linux"];
|
systems = ["x86_64-linux" "i686-linux"];
|
||||||
supportedFeatures = [
|
supportedFeatures = [
|
||||||
"benchmark"
|
"benchmark"
|
||||||
"big-parallel"
|
"big-parallel"
|
||||||
"gccarch-znver4"
|
"gccarch-znver4"
|
||||||
"kvm"
|
"kvm"
|
||||||
"nixos-test"
|
"nixos-test"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
nix.extraOptions = ''
|
nix.extraOptions = ''
|
||||||
builders-use-substitutes = true
|
builders-use-substitutes = true
|
||||||
'';
|
'';
|
||||||
nix.distributedBuilds = true;
|
nix.distributedBuilds = true;
|
||||||
|
|
||||||
networking.hostName = "NOmom";
|
networking.hostName = "NOmom";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: {
|
||||||
nixpkgs.hostPlatform = "riscv64";
|
nixpkgs.hostPlatform = "riscv64";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,80 +1,80 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
bat
|
bat
|
||||||
bottom
|
bottom
|
||||||
cifs-utils
|
cifs-utils
|
||||||
du-dust
|
du-dust
|
||||||
exfatprogs
|
exfatprogs
|
||||||
fastfetch
|
fastfetch
|
||||||
git
|
git
|
||||||
helix
|
helix
|
||||||
inputs.agenix.packages.${pkgs.system}.default
|
inputs.agenix.packages.${pkgs.system}.default
|
||||||
ouch
|
ouch
|
||||||
pueue
|
pueue
|
||||||
ripgrep
|
ripgrep
|
||||||
rustdesk
|
rustdesk
|
||||||
skim
|
skim
|
||||||
tree
|
tree
|
||||||
# wezterm
|
# wezterm
|
||||||
wget
|
wget
|
||||||
zstd
|
zstd
|
||||||
zellij
|
zellij
|
||||||
];
|
];
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
services.resolved.enable = true;
|
services.resolved.enable = true;
|
||||||
|
|
||||||
security.sudo-rs.enable = true;
|
security.sudo-rs.enable = true;
|
||||||
security.sudo.enable = false;
|
security.sudo.enable = false;
|
||||||
users.users.mc = {
|
users.users.mc = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = ["wheel"];
|
extraGroups = ["wheel"];
|
||||||
shell = pkgs.nushell;
|
shell = pkgs.nushell;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
EDITOR = "hx";
|
EDITOR = "hx";
|
||||||
VISUAL = "hx";
|
VISUAL = "hx";
|
||||||
PAGER = "bat";
|
PAGER = "bat";
|
||||||
SKIM_DEFAULT_COMMAND = "rg --files";
|
SKIM_DEFAULT_COMMAND = "rg --files";
|
||||||
};
|
};
|
||||||
|
|
||||||
time.timeZone = lib.mkDefault "US/Pacific";
|
time.timeZone = lib.mkDefault "US/Pacific";
|
||||||
|
|
||||||
zramSwap = {
|
zramSwap = {
|
||||||
enable = true;
|
enable = true;
|
||||||
algorithm = "zstd";
|
algorithm = "zstd";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = lib.mkDefault true;
|
boot.loader.systemd-boot.enable = lib.mkDefault true;
|
||||||
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
|
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
|
||||||
boot.loader.timeout = lib.mkForce 1;
|
boot.loader.timeout = lib.mkForce 1;
|
||||||
boot.supportedFilesystems = ["btrfs"];
|
boot.supportedFilesystems = ["btrfs"];
|
||||||
boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "sr_mod" "virtio_blk"];
|
boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "sr_mod" "virtio_blk"];
|
||||||
boot.kernelModules = ["kvm-intel"];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
experimental-features = "nix-command flakes";
|
experimental-features = "nix-command flakes";
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
trusted-users = ["root" "@wheel"];
|
trusted-users = ["root" "@wheel"];
|
||||||
};
|
};
|
||||||
nixpkgs.config = {allowUnfree = true;};
|
nixpkgs.config = {allowUnfree = true;};
|
||||||
|
|
||||||
networking.hostName = "NOserver-minecraft";
|
networking.hostName = "NOserver-minecraft";
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
system.stateVersion = lib.mkDefault "23.05";
|
system.stateVersion = lib.mkDefault "23.05";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,48 +1,48 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: {
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk.disk1 = {
|
disk.disk1 = {
|
||||||
device = lib.mkDefault "/dev/nvme0n1";
|
device = lib.mkDefault "/dev/nvme0n1";
|
||||||
type = "disk";
|
type = "disk";
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
esp = {
|
|
||||||
name = "ESP";
|
|
||||||
size = "500M";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "gpt";
|
||||||
format = "vfat";
|
partitions = {
|
||||||
mountpoint = "/boot";
|
esp = {
|
||||||
|
name = "ESP";
|
||||||
|
size = "500M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
plainSwap = {
|
||||||
|
size = "32G";
|
||||||
|
content = {
|
||||||
|
type = "swap";
|
||||||
|
discardPolicy = "both";
|
||||||
|
resumeDevice = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
name = "root";
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "bcachefs";
|
||||||
|
mountOptions = [
|
||||||
|
"noatime"
|
||||||
|
"compression=zstd"
|
||||||
|
"background_compression=zstd"
|
||||||
|
"discard"
|
||||||
|
# "fsck"
|
||||||
|
# "fix_errors"
|
||||||
|
];
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "32G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both";
|
|
||||||
resumeDevice = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
name = "root";
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "bcachefs";
|
|
||||||
mountOptions = [
|
|
||||||
"noatime"
|
|
||||||
"compression=zstd"
|
|
||||||
"background_compression=zstd"
|
|
||||||
"discard"
|
|
||||||
# "fsck"
|
|
||||||
# "fix_errors"
|
|
||||||
];
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
296
users/tao.nix
296
users/tao.nix
|
|
@ -1,162 +1,162 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
users.users.tao.packages = with pkgs; [
|
users.users.tao.packages = with pkgs; [
|
||||||
# boxxy
|
# boxxy
|
||||||
calibre
|
calibre
|
||||||
# carapace
|
# carapace
|
||||||
# cloud-hypervisor
|
# cloud-hypervisor
|
||||||
# davinci-resolve
|
# davinci-resolve
|
||||||
# fractal
|
# fractal
|
||||||
# freerdp
|
# freerdp
|
||||||
# inputs.plasma-manager.packages.${pkgs.system}.default
|
# inputs.plasma-manager.packages.${pkgs.system}.default
|
||||||
# jellyfin-mpv-shim
|
# jellyfin-mpv-shim
|
||||||
# libsForQt5.kcharselect
|
# libsForQt5.kcharselect
|
||||||
# mendeley
|
# mendeley
|
||||||
# piper
|
# piper
|
||||||
# slack
|
# slack
|
||||||
# tectonic
|
# tectonic
|
||||||
# texlab
|
# texlab
|
||||||
# thunderbird
|
# thunderbird
|
||||||
# wkhtmltopdf
|
# wkhtmltopdf
|
||||||
appimage-run
|
appimage-run
|
||||||
aspell
|
aspell
|
||||||
aspellDicts.en
|
aspellDicts.en
|
||||||
bottles
|
bottles
|
||||||
darktable
|
darktable
|
||||||
deluge
|
deluge
|
||||||
discord
|
discord
|
||||||
freecad-wayland
|
freecad-wayland
|
||||||
gocryptfs
|
gocryptfs
|
||||||
gurk-rs
|
gurk-rs
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
# kdePackages.plasma-vault
|
# kdePackages.plasma-vault
|
||||||
keepassxc
|
keepassxc
|
||||||
# leetcode-cli
|
# leetcode-cli
|
||||||
man-pages
|
man-pages
|
||||||
man-pages-posix
|
man-pages-posix
|
||||||
miniserve
|
miniserve
|
||||||
mousai
|
mousai
|
||||||
nix-output-monitor
|
nix-output-monitor
|
||||||
nixos-anywhere
|
nixos-anywhere
|
||||||
nufmt
|
nufmt
|
||||||
nushell
|
nushell
|
||||||
nvd
|
nvd
|
||||||
obs-studio
|
obs-studio
|
||||||
oculante
|
oculante
|
||||||
onlyoffice-bin
|
onlyoffice-bin
|
||||||
pandoc
|
pandoc
|
||||||
pipe-rename
|
pipe-rename
|
||||||
prusa-slicer
|
prusa-slicer
|
||||||
qmk
|
qmk
|
||||||
qmk-udev-rules
|
qmk-udev-rules
|
||||||
qmk_hid
|
qmk_hid
|
||||||
ripgrep-all
|
ripgrep-all
|
||||||
signal-desktop
|
signal-desktop
|
||||||
slack
|
slack
|
||||||
snapper
|
snapper
|
||||||
starship
|
starship
|
||||||
syncthingtray
|
syncthingtray
|
||||||
taskwarrior3
|
taskwarrior3
|
||||||
tinymist
|
tinymist
|
||||||
toastify
|
toastify
|
||||||
typst
|
typst
|
||||||
usbutils
|
usbutils
|
||||||
vial
|
vial
|
||||||
wezterm
|
wezterm
|
||||||
wl-clipboard-rs
|
wl-clipboard-rs
|
||||||
yt-dlp
|
yt-dlp
|
||||||
zathura
|
zathura
|
||||||
zellij
|
zellij
|
||||||
zoom-us
|
zoom-us
|
||||||
zoxide
|
zoxide
|
||||||
];
|
];
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
environment.shells = with pkgs; [nushell];
|
environment.shells = with pkgs; [nushell];
|
||||||
|
|
||||||
# virtualisation.libvirtd.enable = true;
|
# virtualisation.libvirtd.enable = true;
|
||||||
# virtualisation.libvirtd.qemu.swtpm.enable = true;
|
# virtualisation.libvirtd.qemu.swtpm.enable = true;
|
||||||
# virtualisation.spiceUSBRedirection.enable = true;
|
# virtualisation.spiceUSBRedirection.enable = true;
|
||||||
# programs.virt-manager.enable = true;
|
# programs.virt-manager.enable = true;
|
||||||
|
|
||||||
# virtualisation.virtualbox.host = {
|
# virtualisation.virtualbox.host = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# enableExtensionPack = true;
|
# enableExtensionPack = true;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# nixpkgs.overlays = [
|
# nixpkgs.overlays = [
|
||||||
# (final: prev: {
|
# (final: prev: {
|
||||||
# options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: {
|
# options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: {
|
||||||
# configOptions.FSTYPE = lib.mkOption {
|
# configOptions.FSTYPE = lib.mkOption {
|
||||||
# type = lib.types.enum ["btrfs" "bcachefs"];
|
# type = lib.types.enum ["btrfs" "bcachefs"];
|
||||||
# };
|
# };
|
||||||
# });
|
# });
|
||||||
# })
|
# })
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
disabledModules = ["services/misc/snapper.nix"];
|
disabledModules = ["services/misc/snapper.nix"];
|
||||||
imports = [../extras/snapper.nix];
|
imports = [../extras/snapper.nix];
|
||||||
services.snapper.configs = {
|
services.snapper.configs = {
|
||||||
home = {
|
home = {
|
||||||
SUBVOLUME = "/home";
|
SUBVOLUME = "/home";
|
||||||
# FSTYPE = "bcachefs";
|
# FSTYPE = "bcachefs";
|
||||||
FSTYPE =
|
FSTYPE =
|
||||||
if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||||
then "bcachefs"
|
then "bcachefs"
|
||||||
else "btrfs";
|
else "btrfs";
|
||||||
ALLOW_USERS = ["tao"];
|
ALLOW_USERS = ["tao"];
|
||||||
TIMELINE_CREATE = true;
|
TIMELINE_CREATE = true;
|
||||||
TIMELINE_CLEANUP = true;
|
TIMELINE_CLEANUP = true;
|
||||||
TIMELINE_LIMIT_HOURLY = 5;
|
TIMELINE_LIMIT_HOURLY = 5;
|
||||||
TIMELINE_LIMIT_DAILY = 7;
|
TIMELINE_LIMIT_DAILY = 7;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
services.snapper.snapshotInterval = "*:0/5";
|
||||||
services.snapper.snapshotInterval = "*:0/5";
|
|
||||||
|
|
||||||
hardware.keyboard.qmk.enable = true;
|
hardware.keyboard.qmk.enable = true;
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||||
'';
|
'';
|
||||||
# services.ratbagd.enable = true;
|
# services.ratbagd.enable = true;
|
||||||
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [
|
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||||
v4l2loopback
|
v4l2loopback
|
||||||
];
|
];
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
# (nerdfonts.override {fonts = ["FiraCode"];})
|
# (nerdfonts.override {fonts = ["FiraCode"];})
|
||||||
nerd-fonts.fira-code
|
nerd-fonts.fira-code
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-cjk-serif
|
noto-fonts-cjk-serif
|
||||||
noto-fonts-color-emoji
|
noto-fonts-color-emoji
|
||||||
ibm-plex
|
ibm-plex
|
||||||
cooper-hewitt
|
cooper-hewitt
|
||||||
];
|
];
|
||||||
|
|
||||||
documentation.enable = true;
|
documentation.enable = true;
|
||||||
|
|
||||||
# age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age;
|
# age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age;
|
||||||
users.users.tao = {
|
users.users.tao = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
# hashedPasswordFile = config.age.secrets.password-tao.path;
|
# hashedPasswordFile = config.age.secrets.password-tao.path;
|
||||||
extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"];
|
extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"];
|
||||||
shell = pkgs.nushell;
|
shell = pkgs.nushell;
|
||||||
};
|
};
|
||||||
|
|
||||||
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
||||||
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.verbose = true;
|
home-manager.verbose = true;
|
||||||
home-manager.backupFileExtension = ".hm-bak";
|
home-manager.backupFileExtension = ".hm-bak";
|
||||||
home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;};
|
home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,261 +1,261 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cargoFile = builtins.readFile ./cargo.toml;
|
cargoFile = builtins.readFile ./cargo.toml;
|
||||||
cargoConfig = builtins.replaceStrings ["/path/to/sccache" "/path/to/mold"] ["${pkgs.sccache}/bin/sccache" "${pkgs.mold}/bin/mold}"] cargoFile;
|
cargoConfig = builtins.replaceStrings ["/path/to/sccache" "/path/to/mold"] ["${pkgs.sccache}/bin/sccache" "${pkgs.mold}/bin/mold}"] cargoFile;
|
||||||
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
||||||
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./boxxy.nix
|
./boxxy.nix
|
||||||
(import ./helix.nix {inherit pkgs inputs;})
|
(import ./helix.nix {inherit pkgs inputs;})
|
||||||
# ./plasma.nix
|
# ./plasma.nix
|
||||||
# ./firefox.nix
|
# ./firefox.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# home.sessionPath = [
|
# home.sessionPath = [
|
||||||
# "/home/tao/.cargo/bin"
|
# "/home/tao/.cargo/bin"
|
||||||
# ];
|
# ];
|
||||||
home.file.".cargo/config.toml".text = cargoConfig;
|
home.file.".cargo/config.toml".text = cargoConfig;
|
||||||
home.file.".config/autostart" = {
|
home.file.".config/autostart" = {
|
||||||
source = ./autostart;
|
source = ./autostart;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
|
||||||
home.file.".config/direnv/lib/".source = ./direnv;
|
|
||||||
home.file.".config/direnv/lib/".recursive = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
bacon = {
|
|
||||||
enable = true;
|
|
||||||
settings.jobs.default = {
|
|
||||||
command = [
|
|
||||||
"cargo"
|
|
||||||
"clippy"
|
|
||||||
"--"
|
|
||||||
"-A"
|
|
||||||
"clippy::bool_to_int_with_if"
|
|
||||||
"-A"
|
|
||||||
"clippy::collapsible_else_if"
|
|
||||||
"-A"
|
|
||||||
"clippy::collapsible_if"
|
|
||||||
"-A"
|
|
||||||
"clippy::derive_partial_eq_without_eq"
|
|
||||||
"-A"
|
|
||||||
"clippy::get_first"
|
|
||||||
"-A"
|
|
||||||
"clippy::if_same_then_else"
|
|
||||||
"-A"
|
|
||||||
"clippy::len_without_is_empty"
|
|
||||||
"-A"
|
|
||||||
"clippy::map_entry"
|
|
||||||
"-A"
|
|
||||||
"clippy::while_let_on_iterator"
|
|
||||||
];
|
|
||||||
need_stdout = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
home.file.".config/direnv/lib/".source = ./direnv;
|
||||||
|
home.file.".config/direnv/lib/".recursive = true;
|
||||||
|
|
||||||
bat = {
|
programs = {
|
||||||
enable = true;
|
bacon = {
|
||||||
config = {
|
enable = true;
|
||||||
theme = "gruvbox-dark";
|
settings.jobs.default = {
|
||||||
};
|
command = [
|
||||||
};
|
"cargo"
|
||||||
|
"clippy"
|
||||||
bottom = {
|
"--"
|
||||||
enable = true;
|
"-A"
|
||||||
settings = {
|
"clippy::bool_to_int_with_if"
|
||||||
color = "gruvbox";
|
"-A"
|
||||||
flags = {
|
"clippy::collapsible_else_if"
|
||||||
battery =
|
"-A"
|
||||||
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
"clippy::collapsible_if"
|
||||||
# then true
|
"-A"
|
||||||
# else false;
|
"clippy::derive_partial_eq_without_eq"
|
||||||
true;
|
"-A"
|
||||||
hide_time = true;
|
"clippy::get_first"
|
||||||
enable_gpu = true;
|
"-A"
|
||||||
|
"clippy::if_same_then_else"
|
||||||
|
"-A"
|
||||||
|
"clippy::len_without_is_empty"
|
||||||
|
"-A"
|
||||||
|
"clippy::map_entry"
|
||||||
|
"-A"
|
||||||
|
"clippy::while_let_on_iterator"
|
||||||
|
];
|
||||||
|
need_stdout = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
direnv = {
|
bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableNushellIntegration = true;
|
config = {
|
||||||
nix-direnv.enable = true;
|
theme = "gruvbox-dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
jujutsu = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
name = "Tao Tien";
|
|
||||||
email = "29749622+taotien@users.noreply.github.com";
|
|
||||||
};
|
};
|
||||||
ui = {
|
|
||||||
default-command = "log";
|
bottom = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
color = "gruvbox";
|
||||||
|
flags = {
|
||||||
|
battery =
|
||||||
|
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||||
|
# then true
|
||||||
|
# else false;
|
||||||
|
true;
|
||||||
|
hide_time = true;
|
||||||
|
enable_gpu = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
# package = inputs.jujutsu.packages.${pkgs.system}.default;
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Tao Tien";
|
enableNushellIntegration = true;
|
||||||
userEmail = "29749622+taotien@users.noreply.github.com";
|
nix-direnv.enable = true;
|
||||||
# extraConfig = {
|
|
||||||
# };
|
|
||||||
ignores = [
|
|
||||||
"/target"
|
|
||||||
".direnv"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nushell = {
|
|
||||||
enable = true;
|
|
||||||
configFile.source = ./nushell/config.nu;
|
|
||||||
envFile.source = ./nushell/env.nu;
|
|
||||||
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
|
||||||
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
|
||||||
};
|
|
||||||
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
compression = true;
|
|
||||||
matchBlocks = {
|
|
||||||
"stargate" = {
|
|
||||||
hostname = "stargate.cs.usfca.edu";
|
|
||||||
user = "tltien";
|
|
||||||
forwardAgent = true;
|
|
||||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
|
||||||
};
|
};
|
||||||
"griffin" = {
|
|
||||||
hostname = "griffin.cs.usfca.edu";
|
jujutsu = {
|
||||||
user = "tltien";
|
enable = true;
|
||||||
forwardAgent = true;
|
settings = {
|
||||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
user = {
|
||||||
# proxyCommand = "ssh griffin.cs.usfca.edu";
|
name = "Tao Tien";
|
||||||
|
email = "29749622+taotien@users.noreply.github.com";
|
||||||
|
};
|
||||||
|
ui = {
|
||||||
|
default-command = "log";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# package = inputs.jujutsu.packages.${pkgs.system}.default;
|
||||||
};
|
};
|
||||||
"github" = {
|
|
||||||
hostname = "github.com";
|
git = {
|
||||||
forwardAgent = true;
|
enable = true;
|
||||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
userName = "Tao Tien";
|
||||||
|
userEmail = "29749622+taotien@users.noreply.github.com";
|
||||||
|
# extraConfig = {
|
||||||
|
# };
|
||||||
|
ignores = [
|
||||||
|
"/target"
|
||||||
|
".direnv"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
starship = {
|
nushell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableNushellIntegration = true;
|
configFile.source = ./nushell/config.nu;
|
||||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
envFile.source = ./nushell/env.nu;
|
||||||
};
|
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
||||||
|
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
||||||
|
};
|
||||||
|
|
||||||
# taskwarrior = {
|
ssh = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# package = pkgs.taskwarrior3;
|
addKeysToAgent = "yes";
|
||||||
# dataLocation = "/home/tao/sync";
|
compression = true;
|
||||||
# };
|
matchBlocks = {
|
||||||
|
"stargate" = {
|
||||||
|
hostname = "stargate.cs.usfca.edu";
|
||||||
|
user = "tltien";
|
||||||
|
forwardAgent = true;
|
||||||
|
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||||
|
};
|
||||||
|
"griffin" = {
|
||||||
|
hostname = "griffin.cs.usfca.edu";
|
||||||
|
user = "tltien";
|
||||||
|
forwardAgent = true;
|
||||||
|
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||||
|
# proxyCommand = "ssh griffin.cs.usfca.edu";
|
||||||
|
};
|
||||||
|
"github" = {
|
||||||
|
hostname = "github.com";
|
||||||
|
forwardAgent = true;
|
||||||
|
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
wezterm = {
|
starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = builtins.readFile ./wezterm.lua;
|
enableNushellIntegration = true;
|
||||||
};
|
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||||
|
};
|
||||||
|
|
||||||
zathura = {
|
# taskwarrior = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
options = {
|
# package = pkgs.taskwarrior3;
|
||||||
selection-clipboard = "clipboard";
|
# dataLocation = "/home/tao/sync";
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
zellij = {
|
|
||||||
enable = true;
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
|
|
||||||
zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableNushellIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
pueue = {
|
|
||||||
enable = true;
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
# user = "tao";
|
|
||||||
# dataDir = "/home/tao/sync";
|
|
||||||
# configDir = "/home/tao/.config/syncthing";
|
|
||||||
overrideDevices = true;
|
|
||||||
overrideFolders = true;
|
|
||||||
# openDefaultPorts = true;
|
|
||||||
settings = {
|
|
||||||
devices = {
|
|
||||||
# we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
|
|
||||||
# bootstrap by commenting out devices first and rebuild switch impurely
|
|
||||||
"nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
|
|
||||||
"nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
|
|
||||||
"uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
|
|
||||||
};
|
|
||||||
folders = let
|
|
||||||
devs = [
|
|
||||||
"nocomputer"
|
|
||||||
"nolaptop"
|
|
||||||
"uwuraid"
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
# "documents" = {
|
|
||||||
# path = "/home/tao/documents";
|
|
||||||
# devices = devs;
|
|
||||||
# };
|
# };
|
||||||
"pictures" = {
|
|
||||||
path = "/home/tao/pictures";
|
wezterm = {
|
||||||
devices = devs;
|
enable = true;
|
||||||
|
extraConfig = builtins.readFile ./wezterm.lua;
|
||||||
};
|
};
|
||||||
"projects" = {
|
|
||||||
path = "/home/tao/projects";
|
zathura = {
|
||||||
devices = devs;
|
enable = true;
|
||||||
|
options = {
|
||||||
|
selection-clipboard = "clipboard";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
"school" = {
|
|
||||||
path = "/home/tao/school";
|
zellij = {
|
||||||
devices = devs;
|
enable = true;
|
||||||
|
settings = {};
|
||||||
};
|
};
|
||||||
"sync" = {
|
|
||||||
path = "/home/tao/sync";
|
zoxide = {
|
||||||
devices = devs;
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
};
|
};
|
||||||
# "work" = {
|
|
||||||
# path = "/home/tao/work";
|
|
||||||
# devices = devs;
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
xdg.userDirs = {
|
services = {
|
||||||
desktop = "desktop";
|
pueue = {
|
||||||
documents = "documents";
|
enable = true;
|
||||||
download = "downloads";
|
settings = {};
|
||||||
music = "music";
|
};
|
||||||
pictures = "pictures";
|
};
|
||||||
templates = "templates";
|
|
||||||
videos = "videos";
|
|
||||||
publicShare = null;
|
|
||||||
createDirectories = true;
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.username = "tao";
|
services.syncthing = {
|
||||||
home.homeDirectory = "/home/tao";
|
enable = true;
|
||||||
home.stateVersion = "23.11";
|
# user = "tao";
|
||||||
|
# dataDir = "/home/tao/sync";
|
||||||
|
# configDir = "/home/tao/.config/syncthing";
|
||||||
|
overrideDevices = true;
|
||||||
|
overrideFolders = true;
|
||||||
|
# openDefaultPorts = true;
|
||||||
|
settings = {
|
||||||
|
devices = {
|
||||||
|
# we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
|
||||||
|
# bootstrap by commenting out devices first and rebuild switch impurely
|
||||||
|
"nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
|
||||||
|
"nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
|
||||||
|
"uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
|
||||||
|
};
|
||||||
|
folders = let
|
||||||
|
devs = [
|
||||||
|
"nocomputer"
|
||||||
|
"nolaptop"
|
||||||
|
"uwuraid"
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
# "documents" = {
|
||||||
|
# path = "/home/tao/documents";
|
||||||
|
# devices = devs;
|
||||||
|
# };
|
||||||
|
"pictures" = {
|
||||||
|
path = "/home/tao/pictures";
|
||||||
|
devices = devs;
|
||||||
|
};
|
||||||
|
"projects" = {
|
||||||
|
path = "/home/tao/projects";
|
||||||
|
devices = devs;
|
||||||
|
};
|
||||||
|
"school" = {
|
||||||
|
path = "/home/tao/school";
|
||||||
|
devices = devs;
|
||||||
|
};
|
||||||
|
"sync" = {
|
||||||
|
path = "/home/tao/sync";
|
||||||
|
devices = devs;
|
||||||
|
};
|
||||||
|
# "work" = {
|
||||||
|
# path = "/home/tao/work";
|
||||||
|
# devices = devs;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.userDirs = {
|
||||||
|
desktop = "desktop";
|
||||||
|
documents = "documents";
|
||||||
|
download = "downloads";
|
||||||
|
music = "music";
|
||||||
|
pictures = "pictures";
|
||||||
|
templates = "templates";
|
||||||
|
videos = "videos";
|
||||||
|
publicShare = null;
|
||||||
|
createDirectories = true;
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.username = "tao";
|
||||||
|
home.homeDirectory = "/home/tao";
|
||||||
|
home.stateVersion = "23.11";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
{
|
{
|
||||||
programs.boxxy = {
|
programs.boxxy = {
|
||||||
rules = [
|
rules = [
|
||||||
# {
|
# {
|
||||||
# name = "arduino-cli";
|
# name = "arduino-cli";
|
||||||
# target = "~/.arduino15";
|
# target = "~/.arduino15";
|
||||||
# rewrite = "~/.local/share/arduino/cli";
|
# rewrite = "~/.local/share/arduino/cli";
|
||||||
# }
|
# }
|
||||||
# {
|
# {
|
||||||
# name = "arduino-cli";
|
# name = "arduino-cli";
|
||||||
# target = "~/Arduino";
|
# target = "~/Arduino";
|
||||||
# rewrite = "~/.local/share/arduino/ide";
|
# rewrite = "~/.local/share/arduino/ide";
|
||||||
# }
|
# }
|
||||||
# {
|
# {
|
||||||
# name = "arduino-cli";
|
# name = "arduino-cli";
|
||||||
# target = "~/.jssc";
|
# target = "~/.jssc";
|
||||||
# rewrite = "~/.local/share/arduino/jssc";
|
# rewrite = "~/.local/share/arduino/jssc";
|
||||||
# }
|
# }
|
||||||
];
|
];
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
# policies = {
|
# policies = {
|
||||||
# };
|
# };
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# profiles.default.settings = {
|
# profiles.default.settings = {
|
||||||
# "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false;
|
# "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false;
|
||||||
# "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
# "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||||
# "browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
# "browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||||
# "browser.newtabpage.activity-stream.showSponsored" = false;
|
# "browser.newtabpage.activity-stream.showSponsored" = false;
|
||||||
# "extensions.pocket.enabled" = false;
|
# "extensions.pocket.enabled" = false;
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,267 +1,267 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
settings = {
|
settings = {
|
||||||
theme = "gruvbox_dark_hard";
|
theme = "gruvbox_dark_hard";
|
||||||
editor = {
|
editor = {
|
||||||
end-of-line-diagnostics = "hint";
|
end-of-line-diagnostics = "hint";
|
||||||
inline-diagnostics = {
|
inline-diagnostics = {
|
||||||
cursor-line = "warning";
|
cursor-line = "warning";
|
||||||
};
|
};
|
||||||
auto-save = {
|
auto-save = {
|
||||||
focus-lost = true;
|
focus-lost = true;
|
||||||
after-delay.enable = true;
|
after-delay.enable = true;
|
||||||
after-delay.timeout = 1000;
|
after-delay.timeout = 1000;
|
||||||
};
|
};
|
||||||
shell = ["nu" "--stdin" "-c"];
|
shell = ["nu" "--stdin" "-c"];
|
||||||
# rainbow-brackets = true;
|
# rainbow-brackets = true;
|
||||||
line-number = "relative";
|
line-number = "relative";
|
||||||
cursorline = true;
|
cursorline = true;
|
||||||
completion-replace = false;
|
completion-replace = false;
|
||||||
preview-completion-insert = false;
|
preview-completion-insert = false;
|
||||||
indent-guides = {
|
indent-guides = {
|
||||||
render = true;
|
render = true;
|
||||||
skip-levels = 2;
|
skip-levels = 2;
|
||||||
};
|
};
|
||||||
cursor-shape = {
|
cursor-shape = {
|
||||||
insert = "bar";
|
insert = "bar";
|
||||||
select = "underline";
|
select = "underline";
|
||||||
};
|
};
|
||||||
statusline = {
|
statusline = {
|
||||||
left = ["mode" "spinner" "spacer" "version-control"];
|
left = ["mode" "spinner" "spacer" "version-control"];
|
||||||
center = ["file-name" "file-modification-indicator"];
|
center = ["file-name" "file-modification-indicator"];
|
||||||
right = ["diagnostics" "primary-selection-length" "total-line-numbers" "selections" "position"];
|
right = ["diagnostics" "primary-selection-length" "total-line-numbers" "selections" "position"];
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
display-messages = true;
|
display-messages = true;
|
||||||
display-inlay-hints = true;
|
display-inlay-hints = true;
|
||||||
display-progress-messages = true;
|
display-progress-messages = true;
|
||||||
};
|
};
|
||||||
soft-wrap.enable = true;
|
soft-wrap.enable = true;
|
||||||
smart-tab.supersede-menu = false;
|
smart-tab.supersede-menu = false;
|
||||||
};
|
};
|
||||||
keys.insert = {
|
keys.insert = {
|
||||||
C-space = "completion";
|
C-space = "completion";
|
||||||
k = {k = "normal_mode";};
|
k = {k = "normal_mode";};
|
||||||
};
|
};
|
||||||
keys.normal = {
|
keys.normal = {
|
||||||
k = "move_line_down";
|
k = "move_line_down";
|
||||||
j = "move_line_up";
|
j = "move_line_up";
|
||||||
};
|
};
|
||||||
keys.select = {
|
keys.select = {
|
||||||
k = "extend_line_down";
|
k = "extend_line_down";
|
||||||
j = "extend_line_up";
|
j = "extend_line_up";
|
||||||
};
|
};
|
||||||
keys.normal.space.w = {
|
keys.normal.space.w = {
|
||||||
k = "jump_view_down";
|
k = "jump_view_down";
|
||||||
j = "jump_view_up";
|
j = "jump_view_up";
|
||||||
K = "swap_view_down";
|
K = "swap_view_down";
|
||||||
J = "swap_view_up";
|
J = "swap_view_up";
|
||||||
};
|
};
|
||||||
keys.normal.space.t = {
|
keys.normal.space.t = {
|
||||||
r = "@mip:reflow<ret>";
|
r = "@mip:reflow<ret>";
|
||||||
s = "@|lines | sort | to text<ret>";
|
s = "@|lines | sort | to text<ret>";
|
||||||
};
|
|
||||||
};
|
|
||||||
languages = {
|
|
||||||
use-grammars.only = [
|
|
||||||
"bash"
|
|
||||||
"c"
|
|
||||||
"cpp"
|
|
||||||
"gas"
|
|
||||||
"html"
|
|
||||||
"just"
|
|
||||||
"markdown"
|
|
||||||
"nix"
|
|
||||||
"rust"
|
|
||||||
"scheme"
|
|
||||||
"sql"
|
|
||||||
"toml"
|
|
||||||
"typst"
|
|
||||||
];
|
|
||||||
language = [
|
|
||||||
{
|
|
||||||
name = "typst";
|
|
||||||
text-width = 100;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "sql";
|
|
||||||
language-servers = ["sqls"];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "go";
|
|
||||||
formatter.command = "goimports";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "arduino";
|
|
||||||
grammar = "arduino";
|
|
||||||
scope = "source.arduino";
|
|
||||||
injection-regex = "arduino";
|
|
||||||
file-types = ["ino" "cpp" "h"];
|
|
||||||
comment-token = "//";
|
|
||||||
roots = ["*.ino" "sketch.yaml"];
|
|
||||||
language-servers = ["arduino-language-server"];
|
|
||||||
indent = {
|
|
||||||
tab-width = 8;
|
|
||||||
unit = "\t";
|
|
||||||
};
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "clang-format";
|
|
||||||
args = ["--style=file:/home/tao/templates/clang-format"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "c";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "clang-format";
|
|
||||||
args = ["--style=file:/home/tao/templates/clang-format"];
|
|
||||||
};
|
|
||||||
indent = {
|
|
||||||
tab-width = 8;
|
|
||||||
unit = "\t";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "cpp";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {
|
|
||||||
command = "clang-format";
|
|
||||||
args = ["--style=file:/home/tao/templates/clang-format"];
|
|
||||||
};
|
|
||||||
indent = {
|
|
||||||
tab-width = 8;
|
|
||||||
unit = "\t";
|
|
||||||
};
|
|
||||||
file-types = [
|
|
||||||
"cc"
|
|
||||||
"hh"
|
|
||||||
"c++"
|
|
||||||
"cpp"
|
|
||||||
"hpp"
|
|
||||||
"h"
|
|
||||||
"ipp"
|
|
||||||
"tpp"
|
|
||||||
"cxx"
|
|
||||||
"hxx"
|
|
||||||
"ixx"
|
|
||||||
"txx"
|
|
||||||
"C"
|
|
||||||
"H"
|
|
||||||
"cu"
|
|
||||||
"cuh"
|
|
||||||
"cppm"
|
|
||||||
"h++"
|
|
||||||
"ii"
|
|
||||||
"inl"
|
|
||||||
{glob = ".hpp.in";}
|
|
||||||
{glob = ".h.in";}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "html";
|
|
||||||
auto-format = false;
|
|
||||||
indent = {
|
|
||||||
tab-width = 4;
|
|
||||||
unit = "\t";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# name = "java";
|
|
||||||
# auto-format = true;
|
|
||||||
# indent = {
|
|
||||||
# tab-width = 4;
|
|
||||||
# unit = "\t";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
name = "javascript";
|
|
||||||
auto-format = true;
|
|
||||||
indent = {
|
|
||||||
tab-width = 4;
|
|
||||||
unit = "\t";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "nix";
|
|
||||||
auto-format = true;
|
|
||||||
formatter = {command = "alejandra";};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "toml";
|
|
||||||
auto-format = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "typst";
|
|
||||||
language-servers = ["tinymist"];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "scheme";
|
|
||||||
language-servers = ["steel"];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
language-servers = {
|
|
||||||
rust-analyzer.config = {
|
|
||||||
server.path = "/home/tao/.cargo/bin/rust-analyzer";
|
|
||||||
procMacro = {
|
|
||||||
ignored = {
|
|
||||||
leptos_macro = [
|
|
||||||
# Optional:
|
|
||||||
# "component",
|
|
||||||
"server"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
languages = {
|
||||||
language-server = {
|
use-grammars.only = [
|
||||||
rust-analyzer.config.check.command = "clippy";
|
"bash"
|
||||||
# gas = {
|
"c"
|
||||||
# command = "asm-lsp";
|
"cpp"
|
||||||
# };
|
"gas"
|
||||||
# jdtls = {
|
"html"
|
||||||
# command = "jdtls";
|
"just"
|
||||||
# args = ["-data" "/home/tao/.cache/jdtls/workspace"];
|
"markdown"
|
||||||
# };
|
"nix"
|
||||||
arduino-language-server = {
|
"rust"
|
||||||
command = "boxxy";
|
"scheme"
|
||||||
args = ["arduino-language-server" "-cli" "arduino-cli" "-cli-config" "~/.local/share/arduino/cli/arduino-cli.yaml" "-jobs" "0"];
|
"sql"
|
||||||
|
"toml"
|
||||||
|
"typst"
|
||||||
|
];
|
||||||
|
language = [
|
||||||
|
{
|
||||||
|
name = "typst";
|
||||||
|
text-width = 100;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "sql";
|
||||||
|
language-servers = ["sqls"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "go";
|
||||||
|
formatter.command = "goimports";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "arduino";
|
||||||
|
grammar = "arduino";
|
||||||
|
scope = "source.arduino";
|
||||||
|
injection-regex = "arduino";
|
||||||
|
file-types = ["ino" "cpp" "h"];
|
||||||
|
comment-token = "//";
|
||||||
|
roots = ["*.ino" "sketch.yaml"];
|
||||||
|
language-servers = ["arduino-language-server"];
|
||||||
|
indent = {
|
||||||
|
tab-width = 8;
|
||||||
|
unit = "\t";
|
||||||
|
};
|
||||||
|
auto-format = true;
|
||||||
|
formatter = {
|
||||||
|
command = "clang-format";
|
||||||
|
args = ["--style=file:/home/tao/templates/clang-format"];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "c";
|
||||||
|
auto-format = true;
|
||||||
|
formatter = {
|
||||||
|
command = "clang-format";
|
||||||
|
args = ["--style=file:/home/tao/templates/clang-format"];
|
||||||
|
};
|
||||||
|
indent = {
|
||||||
|
tab-width = 8;
|
||||||
|
unit = "\t";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "cpp";
|
||||||
|
auto-format = true;
|
||||||
|
formatter = {
|
||||||
|
command = "clang-format";
|
||||||
|
args = ["--style=file:/home/tao/templates/clang-format"];
|
||||||
|
};
|
||||||
|
indent = {
|
||||||
|
tab-width = 8;
|
||||||
|
unit = "\t";
|
||||||
|
};
|
||||||
|
file-types = [
|
||||||
|
"cc"
|
||||||
|
"hh"
|
||||||
|
"c++"
|
||||||
|
"cpp"
|
||||||
|
"hpp"
|
||||||
|
"h"
|
||||||
|
"ipp"
|
||||||
|
"tpp"
|
||||||
|
"cxx"
|
||||||
|
"hxx"
|
||||||
|
"ixx"
|
||||||
|
"txx"
|
||||||
|
"C"
|
||||||
|
"H"
|
||||||
|
"cu"
|
||||||
|
"cuh"
|
||||||
|
"cppm"
|
||||||
|
"h++"
|
||||||
|
"ii"
|
||||||
|
"inl"
|
||||||
|
{glob = ".hpp.in";}
|
||||||
|
{glob = ".h.in";}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "html";
|
||||||
|
auto-format = false;
|
||||||
|
indent = {
|
||||||
|
tab-width = 4;
|
||||||
|
unit = "\t";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# name = "java";
|
||||||
|
# auto-format = true;
|
||||||
|
# indent = {
|
||||||
|
# tab-width = 4;
|
||||||
|
# unit = "\t";
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
name = "javascript";
|
||||||
|
auto-format = true;
|
||||||
|
indent = {
|
||||||
|
tab-width = 4;
|
||||||
|
unit = "\t";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "nix";
|
||||||
|
auto-format = true;
|
||||||
|
formatter = {command = "alejandra";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "toml";
|
||||||
|
auto-format = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "typst";
|
||||||
|
language-servers = ["tinymist"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "scheme";
|
||||||
|
language-servers = ["steel"];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
language-servers = {
|
||||||
|
rust-analyzer.config = {
|
||||||
|
server.path = "/home/tao/.cargo/bin/rust-analyzer";
|
||||||
|
procMacro = {
|
||||||
|
ignored = {
|
||||||
|
leptos_macro = [
|
||||||
|
# Optional:
|
||||||
|
# "component",
|
||||||
|
"server"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
language-server = {
|
||||||
|
rust-analyzer.config.check.command = "clippy";
|
||||||
|
# gas = {
|
||||||
|
# command = "asm-lsp";
|
||||||
|
# };
|
||||||
|
# jdtls = {
|
||||||
|
# command = "jdtls";
|
||||||
|
# args = ["-data" "/home/tao/.cache/jdtls/workspace"];
|
||||||
|
# };
|
||||||
|
arduino-language-server = {
|
||||||
|
command = "boxxy";
|
||||||
|
args = ["arduino-language-server" "-cli" "arduino-cli" "-cli-config" "~/.local/share/arduino/cli/arduino-cli.yaml" "-jobs" "0"];
|
||||||
|
};
|
||||||
|
# gopls = {
|
||||||
|
# config = {
|
||||||
|
# unusedVariable = false;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
sqls = {
|
||||||
|
command = "sqls";
|
||||||
|
};
|
||||||
|
tinymist = {
|
||||||
|
command = "tinymist";
|
||||||
|
config = {
|
||||||
|
exportPdf = "onType";
|
||||||
|
outputPath = "$root/$dir/$name";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
steel-language-server = {
|
||||||
|
command = "steel-language-server";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
grammar = [
|
||||||
|
{
|
||||||
|
name = "arduino";
|
||||||
|
source = {
|
||||||
|
git = "https://github.com/tree-sitter-grammars/tree-sitter-arduino";
|
||||||
|
rev = "8518c3fa6b8562af545a496d55c9abd78f53e732";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
# gopls = {
|
enable = true;
|
||||||
# config = {
|
defaultEditor = true;
|
||||||
# unusedVariable = false;
|
# package = inputs.helix.packages.${pkgs.system}.default;
|
||||||
# };
|
|
||||||
# };
|
|
||||||
sqls = {
|
|
||||||
command = "sqls";
|
|
||||||
};
|
|
||||||
tinymist = {
|
|
||||||
command = "tinymist";
|
|
||||||
config = {
|
|
||||||
exportPdf = "onType";
|
|
||||||
outputPath = "$root/$dir/$name";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
steel-language-server = {
|
|
||||||
command = "steel-language-server";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
grammar = [
|
|
||||||
{
|
|
||||||
name = "arduino";
|
|
||||||
source = {
|
|
||||||
git = "https://github.com/tree-sitter-grammars/tree-sitter-arduino";
|
|
||||||
rev = "8518c3fa6b8562af545a496d55c9abd78f53e732";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
# package = inputs.helix.packages.${pkgs.system}.default;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,382 +1,382 @@
|
||||||
{
|
{
|
||||||
programs.plasma = {
|
programs.plasma = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shortcuts = {
|
shortcuts = {
|
||||||
"ActivityManager"."switch-to-activity-4c4b4e59-b0da-4a45-b9cc-729233bb1e9a" = [ ];
|
"ActivityManager"."switch-to-activity-4c4b4e59-b0da-4a45-b9cc-729233bb1e9a" = [];
|
||||||
"KDE Keyboard Layout Switcher"."Switch keyboard layout to English (US)" = [ ];
|
"KDE Keyboard Layout Switcher"."Switch keyboard layout to English (US)" = [];
|
||||||
"KDE Keyboard Layout Switcher"."Switch keyboard layout to English (Workman)" = [ ];
|
"KDE Keyboard Layout Switcher"."Switch keyboard layout to English (Workman)" = [];
|
||||||
"KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L";
|
"KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L";
|
||||||
"KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K";
|
"KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K";
|
||||||
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||||
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
||||||
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
||||||
"kcm_touchpad"."Toggle Touchpad" = ["Meta+Shift+Space" "Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
"kcm_touchpad"."Toggle Touchpad" = ["Meta+Shift+Space" "Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
||||||
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
||||||
"kmix"."decrease_volume" = "Volume Down";
|
"kmix"."decrease_volume" = "Volume Down";
|
||||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
||||||
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
||||||
"kmix"."increase_volume" = "Volume Up";
|
"kmix"."increase_volume" = "Volume Up";
|
||||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
||||||
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute"];
|
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute"];
|
||||||
"kmix"."mute" = "Volume Mute";
|
"kmix"."mute" = "Volume Mute";
|
||||||
"ksmserver"."Halt Without Confirmation" = [ ];
|
"ksmserver"."Halt Without Confirmation" = [];
|
||||||
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver"];
|
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver"];
|
||||||
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
||||||
"ksmserver"."Log Out Without Confirmation" = [ ];
|
"ksmserver"."Log Out Without Confirmation" = [];
|
||||||
"ksmserver"."Reboot" = [ ];
|
"ksmserver"."Reboot" = [];
|
||||||
"ksmserver"."Reboot Without Confirmation" = [ ];
|
"ksmserver"."Reboot Without Confirmation" = [];
|
||||||
"ksmserver"."Shut Down" = [ ];
|
"ksmserver"."Shut Down" = [];
|
||||||
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||||
"kwin"."Cycle Overview" = [ ];
|
"kwin"."Cycle Overview" = [];
|
||||||
"kwin"."Cycle Overview Opposite" = [ ];
|
"kwin"."Cycle Overview Opposite" = [];
|
||||||
"kwin"."Decrease Opacity" = [ ];
|
"kwin"."Decrease Opacity" = [];
|
||||||
"kwin"."Edit Tiles" = "Meta+T";
|
"kwin"."Edit Tiles" = "Meta+T";
|
||||||
"kwin"."Expose" = "Ctrl+F9";
|
"kwin"."Expose" = "Ctrl+F9";
|
||||||
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C)"];
|
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C)"];
|
||||||
"kwin"."ExposeClass" = "Ctrl+F7";
|
"kwin"."ExposeClass" = "Ctrl+F7";
|
||||||
"kwin"."ExposeClassCurrentDesktop" = [ ];
|
"kwin"."ExposeClassCurrentDesktop" = [];
|
||||||
"kwin"."Grid View" = [ ];
|
"kwin"."Grid View" = [];
|
||||||
"kwin"."Increase Opacity" = [ ];
|
"kwin"."Increase Opacity" = [];
|
||||||
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
||||||
"kwin"."Move Tablet to Next Output" = [ ];
|
"kwin"."Move Tablet to Next Output" = [];
|
||||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
||||||
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
||||||
"kwin"."MoveZoomDown" = [ ];
|
"kwin"."MoveZoomDown" = [];
|
||||||
"kwin"."MoveZoomLeft" = [ ];
|
"kwin"."MoveZoomLeft" = [];
|
||||||
"kwin"."MoveZoomRight" = [ ];
|
"kwin"."MoveZoomRight" = [];
|
||||||
"kwin"."MoveZoomUp" = [ ];
|
"kwin"."MoveZoomUp" = [];
|
||||||
"kwin"."Overview" = [ ];
|
"kwin"."Overview" = [];
|
||||||
"kwin"."Setup Window Shortcut" = [ ];
|
"kwin"."Setup Window Shortcut" = [];
|
||||||
"kwin"."Show Desktop" = "Meta+D";
|
"kwin"."Show Desktop" = "Meta+D";
|
||||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
||||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||||
"kwin"."Switch Window Down" = "Meta+Down";
|
"kwin"."Switch Window Down" = "Meta+Down";
|
||||||
"kwin"."Switch Window Left" = "Meta+Left";
|
"kwin"."Switch Window Left" = "Meta+Left";
|
||||||
"kwin"."Switch Window Right" = "Meta+Right";
|
"kwin"."Switch Window Right" = "Meta+Right";
|
||||||
"kwin"."Switch Window Up" = "Meta+Up";
|
"kwin"."Switch Window Up" = "Meta+Up";
|
||||||
"kwin"."Switch to Desktop 1" = "Meta+5";
|
"kwin"."Switch to Desktop 1" = "Meta+5";
|
||||||
"kwin"."Switch to Desktop 10" = [ ];
|
"kwin"."Switch to Desktop 10" = [];
|
||||||
"kwin"."Switch to Desktop 11" = [ ];
|
"kwin"."Switch to Desktop 11" = [];
|
||||||
"kwin"."Switch to Desktop 12" = [ ];
|
"kwin"."Switch to Desktop 12" = [];
|
||||||
"kwin"."Switch to Desktop 13" = [ ];
|
"kwin"."Switch to Desktop 13" = [];
|
||||||
"kwin"."Switch to Desktop 14" = [ ];
|
"kwin"."Switch to Desktop 14" = [];
|
||||||
"kwin"."Switch to Desktop 15" = [ ];
|
"kwin"."Switch to Desktop 15" = [];
|
||||||
"kwin"."Switch to Desktop 16" = [ ];
|
"kwin"."Switch to Desktop 16" = [];
|
||||||
"kwin"."Switch to Desktop 17" = [ ];
|
"kwin"."Switch to Desktop 17" = [];
|
||||||
"kwin"."Switch to Desktop 18" = [ ];
|
"kwin"."Switch to Desktop 18" = [];
|
||||||
"kwin"."Switch to Desktop 19" = [ ];
|
"kwin"."Switch to Desktop 19" = [];
|
||||||
"kwin"."Switch to Desktop 2" = "Meta+6";
|
"kwin"."Switch to Desktop 2" = "Meta+6";
|
||||||
"kwin"."Switch to Desktop 20" = [ ];
|
"kwin"."Switch to Desktop 20" = [];
|
||||||
"kwin"."Switch to Desktop 3" = "Meta+7";
|
"kwin"."Switch to Desktop 3" = "Meta+7";
|
||||||
"kwin"."Switch to Desktop 4" = "Meta+8";
|
"kwin"."Switch to Desktop 4" = "Meta+8";
|
||||||
"kwin"."Switch to Desktop 5" = "Meta+9";
|
"kwin"."Switch to Desktop 5" = "Meta+9";
|
||||||
"kwin"."Switch to Desktop 6" = "Meta+0";
|
"kwin"."Switch to Desktop 6" = "Meta+0";
|
||||||
"kwin"."Switch to Desktop 7" = [ ];
|
"kwin"."Switch to Desktop 7" = [];
|
||||||
"kwin"."Switch to Desktop 8" = [ ];
|
"kwin"."Switch to Desktop 8" = [];
|
||||||
"kwin"."Switch to Desktop 9" = [ ];
|
"kwin"."Switch to Desktop 9" = [];
|
||||||
"kwin"."Switch to Next Desktop" = [ ];
|
"kwin"."Switch to Next Desktop" = [];
|
||||||
"kwin"."Switch to Next Screen" = [ ];
|
"kwin"."Switch to Next Screen" = [];
|
||||||
"kwin"."Switch to Previous Desktop" = [ ];
|
"kwin"."Switch to Previous Desktop" = [];
|
||||||
"kwin"."Switch to Previous Screen" = [ ];
|
"kwin"."Switch to Previous Screen" = [];
|
||||||
"kwin"."Switch to Screen 0" = [ ];
|
"kwin"."Switch to Screen 0" = [];
|
||||||
"kwin"."Switch to Screen 1" = [ ];
|
"kwin"."Switch to Screen 1" = [];
|
||||||
"kwin"."Switch to Screen 2" = [ ];
|
"kwin"."Switch to Screen 2" = [];
|
||||||
"kwin"."Switch to Screen 3" = [ ];
|
"kwin"."Switch to Screen 3" = [];
|
||||||
"kwin"."Switch to Screen 4" = [ ];
|
"kwin"."Switch to Screen 4" = [];
|
||||||
"kwin"."Switch to Screen 5" = [ ];
|
"kwin"."Switch to Screen 5" = [];
|
||||||
"kwin"."Switch to Screen 6" = [ ];
|
"kwin"."Switch to Screen 6" = [];
|
||||||
"kwin"."Switch to Screen 7" = [ ];
|
"kwin"."Switch to Screen 7" = [];
|
||||||
"kwin"."Switch to Screen Above" = [ ];
|
"kwin"."Switch to Screen Above" = [];
|
||||||
"kwin"."Switch to Screen Below" = [ ];
|
"kwin"."Switch to Screen Below" = [];
|
||||||
"kwin"."Switch to Screen to the Left" = [ ];
|
"kwin"."Switch to Screen to the Left" = [];
|
||||||
"kwin"."Switch to Screen to the Right" = [ ];
|
"kwin"."Switch to Screen to the Right" = [];
|
||||||
"kwin"."Toggle Night Color" = [ ];
|
"kwin"."Toggle Night Color" = [];
|
||||||
"kwin"."Toggle Window Raise/Lower" = [ ];
|
"kwin"."Toggle Window Raise/Lower" = [];
|
||||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||||
"kwin"."Walk Through Windows Alternative" = [ ];
|
"kwin"."Walk Through Windows Alternative" = [];
|
||||||
"kwin"."Walk Through Windows Alternative (Reverse)" = [ ];
|
"kwin"."Walk Through Windows Alternative (Reverse)" = [];
|
||||||
"kwin"."Walk Through Windows of Current Application" = "Alt+`";
|
"kwin"."Walk Through Windows of Current Application" = "Alt+`";
|
||||||
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||||
"kwin"."Walk Through Windows of Current Application Alternative" = [ ];
|
"kwin"."Walk Through Windows of Current Application Alternative" = [];
|
||||||
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = [ ];
|
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = [];
|
||||||
"kwin"."Window Above Other Windows" = [ ];
|
"kwin"."Window Above Other Windows" = [];
|
||||||
"kwin"."Window Below Other Windows" = [ ];
|
"kwin"."Window Below Other Windows" = [];
|
||||||
"kwin"."Window Close" = ["Alt+F4" "Meta+W"];
|
"kwin"."Window Close" = ["Alt+F4" "Meta+W"];
|
||||||
"kwin"."Window Fullscreen" = [ ];
|
"kwin"."Window Fullscreen" = [];
|
||||||
"kwin"."Window Grow Horizontal" = [ ];
|
"kwin"."Window Grow Horizontal" = [];
|
||||||
"kwin"."Window Grow Vertical" = [ ];
|
"kwin"."Window Grow Vertical" = [];
|
||||||
"kwin"."Window Lower" = [ ];
|
"kwin"."Window Lower" = [];
|
||||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||||
"kwin"."Window Maximize Horizontal" = [ ];
|
"kwin"."Window Maximize Horizontal" = [];
|
||||||
"kwin"."Window Maximize Vertical" = [ ];
|
"kwin"."Window Maximize Vertical" = [];
|
||||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||||
"kwin"."Window Move" = [ ];
|
"kwin"."Window Move" = [];
|
||||||
"kwin"."Window Move Center" = [ ];
|
"kwin"."Window Move Center" = [];
|
||||||
"kwin"."Window No Border" = [ ];
|
"kwin"."Window No Border" = [];
|
||||||
"kwin"."Window On All Desktops" = [ ];
|
"kwin"."Window On All Desktops" = [];
|
||||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||||
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
|
||||||
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
|
||||||
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
|
||||||
"kwin"."Window One Screen Down" = [ ];
|
"kwin"."Window One Screen Down" = [];
|
||||||
"kwin"."Window One Screen Up" = [ ];
|
"kwin"."Window One Screen Up" = [];
|
||||||
"kwin"."Window One Screen to the Left" = [ ];
|
"kwin"."Window One Screen to the Left" = [];
|
||||||
"kwin"."Window One Screen to the Right" = [ ];
|
"kwin"."Window One Screen to the Right" = [];
|
||||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||||
"kwin"."Window Pack Down" = [ ];
|
"kwin"."Window Pack Down" = [];
|
||||||
"kwin"."Window Pack Left" = [ ];
|
"kwin"."Window Pack Left" = [];
|
||||||
"kwin"."Window Pack Right" = [ ];
|
"kwin"."Window Pack Right" = [];
|
||||||
"kwin"."Window Pack Up" = [ ];
|
"kwin"."Window Pack Up" = [];
|
||||||
"kwin"."Window Quick Tile Bottom" = [ ];
|
"kwin"."Window Quick Tile Bottom" = [];
|
||||||
"kwin"."Window Quick Tile Bottom Left" = [ ];
|
"kwin"."Window Quick Tile Bottom Left" = [];
|
||||||
"kwin"."Window Quick Tile Bottom Right" = [ ];
|
"kwin"."Window Quick Tile Bottom Right" = [];
|
||||||
"kwin"."Window Quick Tile Left" = [ ];
|
"kwin"."Window Quick Tile Left" = [];
|
||||||
"kwin"."Window Quick Tile Right" = [ ];
|
"kwin"."Window Quick Tile Right" = [];
|
||||||
"kwin"."Window Quick Tile Top" = [ ];
|
"kwin"."Window Quick Tile Top" = [];
|
||||||
"kwin"."Window Quick Tile Top Left" = [ ];
|
"kwin"."Window Quick Tile Top Left" = [];
|
||||||
"kwin"."Window Quick Tile Top Right" = [ ];
|
"kwin"."Window Quick Tile Top Right" = [];
|
||||||
"kwin"."Window Raise" = [ ];
|
"kwin"."Window Raise" = [];
|
||||||
"kwin"."Window Resize" = [ ];
|
"kwin"."Window Resize" = [];
|
||||||
"kwin"."Window Shade" = [ ];
|
"kwin"."Window Shade" = [];
|
||||||
"kwin"."Window Shrink Horizontal" = [ ];
|
"kwin"."Window Shrink Horizontal" = [];
|
||||||
"kwin"."Window Shrink Vertical" = [ ];
|
"kwin"."Window Shrink Vertical" = [];
|
||||||
"kwin"."Window to Desktop 1" = "Meta+%";
|
"kwin"."Window to Desktop 1" = "Meta+%";
|
||||||
"kwin"."Window to Desktop 10" = [ ];
|
"kwin"."Window to Desktop 10" = [];
|
||||||
"kwin"."Window to Desktop 11" = [ ];
|
"kwin"."Window to Desktop 11" = [];
|
||||||
"kwin"."Window to Desktop 12" = [ ];
|
"kwin"."Window to Desktop 12" = [];
|
||||||
"kwin"."Window to Desktop 13" = [ ];
|
"kwin"."Window to Desktop 13" = [];
|
||||||
"kwin"."Window to Desktop 14" = [ ];
|
"kwin"."Window to Desktop 14" = [];
|
||||||
"kwin"."Window to Desktop 15" = [ ];
|
"kwin"."Window to Desktop 15" = [];
|
||||||
"kwin"."Window to Desktop 16" = [ ];
|
"kwin"."Window to Desktop 16" = [];
|
||||||
"kwin"."Window to Desktop 17" = [ ];
|
"kwin"."Window to Desktop 17" = [];
|
||||||
"kwin"."Window to Desktop 18" = [ ];
|
"kwin"."Window to Desktop 18" = [];
|
||||||
"kwin"."Window to Desktop 19" = [ ];
|
"kwin"."Window to Desktop 19" = [];
|
||||||
"kwin"."Window to Desktop 2" = "Meta+^";
|
"kwin"."Window to Desktop 2" = "Meta+^";
|
||||||
"kwin"."Window to Desktop 20" = [ ];
|
"kwin"."Window to Desktop 20" = [];
|
||||||
"kwin"."Window to Desktop 3" = "Meta+&";
|
"kwin"."Window to Desktop 3" = "Meta+&";
|
||||||
"kwin"."Window to Desktop 4" = "Meta+*";
|
"kwin"."Window to Desktop 4" = "Meta+*";
|
||||||
"kwin"."Window to Desktop 5" = "Meta+(";
|
"kwin"."Window to Desktop 5" = "Meta+(";
|
||||||
"kwin"."Window to Desktop 6" = "Meta+)";
|
"kwin"."Window to Desktop 6" = "Meta+)";
|
||||||
"kwin"."Window to Desktop 7" = [ ];
|
"kwin"."Window to Desktop 7" = [];
|
||||||
"kwin"."Window to Desktop 8" = [ ];
|
"kwin"."Window to Desktop 8" = [];
|
||||||
"kwin"."Window to Desktop 9" = [ ];
|
"kwin"."Window to Desktop 9" = [];
|
||||||
"kwin"."Window to Next Desktop" = [ ];
|
"kwin"."Window to Next Desktop" = [];
|
||||||
"kwin"."Window to Next Screen" = [ ];
|
"kwin"."Window to Next Screen" = [];
|
||||||
"kwin"."Window to Previous Desktop" = [ ];
|
"kwin"."Window to Previous Desktop" = [];
|
||||||
"kwin"."Window to Previous Screen" = [ ];
|
"kwin"."Window to Previous Screen" = [];
|
||||||
"kwin"."Window to Screen 0" = [ ];
|
"kwin"."Window to Screen 0" = [];
|
||||||
"kwin"."Window to Screen 1" = [ ];
|
"kwin"."Window to Screen 1" = [];
|
||||||
"kwin"."Window to Screen 2" = [ ];
|
"kwin"."Window to Screen 2" = [];
|
||||||
"kwin"."Window to Screen 3" = [ ];
|
"kwin"."Window to Screen 3" = [];
|
||||||
"kwin"."Window to Screen 4" = [ ];
|
"kwin"."Window to Screen 4" = [];
|
||||||
"kwin"."Window to Screen 5" = [ ];
|
"kwin"."Window to Screen 5" = [];
|
||||||
"kwin"."Window to Screen 6" = [ ];
|
"kwin"."Window to Screen 6" = [];
|
||||||
"kwin"."Window to Screen 7" = [ ];
|
"kwin"."Window to Screen 7" = [];
|
||||||
"kwin"."view_actual_size" = [ ];
|
"kwin"."view_actual_size" = [];
|
||||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+="];
|
"kwin"."view_zoom_in" = ["Meta++" "Meta+="];
|
||||||
"kwin"."view_zoom_out" = "Meta+-";
|
"kwin"."view_zoom_out" = "Meta+-";
|
||||||
"mediacontrol"."mediavolumedown" = [ ];
|
"mediacontrol"."mediavolumedown" = [];
|
||||||
"mediacontrol"."mediavolumeup" = [ ];
|
"mediacontrol"."mediavolumeup" = [];
|
||||||
"mediacontrol"."nextmedia" = "Media Next";
|
"mediacontrol"."nextmedia" = "Media Next";
|
||||||
"mediacontrol"."pausemedia" = "Media Pause";
|
"mediacontrol"."pausemedia" = "Media Pause";
|
||||||
"mediacontrol"."playmedia" = [ ];
|
"mediacontrol"."playmedia" = [];
|
||||||
"mediacontrol"."playpausemedia" = "Media Play";
|
"mediacontrol"."playpausemedia" = "Media Play";
|
||||||
"mediacontrol"."previousmedia" = "Media Previous";
|
"mediacontrol"."previousmedia" = "Media Previous";
|
||||||
"mediacontrol"."stopmedia" = "Media Stop";
|
"mediacontrol"."stopmedia" = "Media Stop";
|
||||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||||
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||||
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||||
"org_kde_powerdevil"."Hibernate" = "Hibernate";
|
"org_kde_powerdevil"."Hibernate" = "Hibernate";
|
||||||
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||||
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||||
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||||
"org_kde_powerdevil"."PowerDown" = "Power Down";
|
"org_kde_powerdevil"."PowerDown" = "Power Down";
|
||||||
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||||
"org_kde_powerdevil"."Sleep" = "Sleep";
|
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||||
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
"org_kde_powerdevil"."Turn Off Screen" = [];
|
||||||
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B"];
|
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B"];
|
||||||
"plasmashell"."activate task manager entry 1" = "Meta+1";
|
"plasmashell"."activate task manager entry 1" = "Meta+1";
|
||||||
"plasmashell"."activate task manager entry 10" = [ ];
|
"plasmashell"."activate task manager entry 10" = [];
|
||||||
"plasmashell"."activate task manager entry 2" = "Meta+2";
|
"plasmashell"."activate task manager entry 2" = "Meta+2";
|
||||||
"plasmashell"."activate task manager entry 3" = "Meta+3";
|
"plasmashell"."activate task manager entry 3" = "Meta+3";
|
||||||
"plasmashell"."activate task manager entry 4" = "Meta+4";
|
"plasmashell"."activate task manager entry 4" = "Meta+4";
|
||||||
"plasmashell"."activate task manager entry 5" = [ ];
|
"plasmashell"."activate task manager entry 5" = [];
|
||||||
"plasmashell"."activate task manager entry 6" = [ ];
|
"plasmashell"."activate task manager entry 6" = [];
|
||||||
"plasmashell"."activate task manager entry 7" = [ ];
|
"plasmashell"."activate task manager entry 7" = [];
|
||||||
"plasmashell"."activate task manager entry 8" = [ ];
|
"plasmashell"."activate task manager entry 8" = [];
|
||||||
"plasmashell"."activate task manager entry 9" = [ ];
|
"plasmashell"."activate task manager entry 9" = [];
|
||||||
"plasmashell"."clear-history" = [ ];
|
"plasmashell"."clear-history" = [];
|
||||||
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
||||||
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
||||||
"plasmashell"."cycleNextAction" = [ ];
|
"plasmashell"."cycleNextAction" = [];
|
||||||
"plasmashell"."cyclePrevAction" = [ ];
|
"plasmashell"."cyclePrevAction" = [];
|
||||||
"plasmashell"."manage activities" = "Meta+Q";
|
"plasmashell"."manage activities" = "Meta+Q";
|
||||||
"plasmashell"."next activity" = "Meta+A";
|
"plasmashell"."next activity" = "Meta+A";
|
||||||
"plasmashell"."previous activity" = "Meta+Shift+A";
|
"plasmashell"."previous activity" = "Meta+Shift+A";
|
||||||
"plasmashell"."repeat_action" = [ ];
|
"plasmashell"."repeat_action" = [];
|
||||||
"plasmashell"."show dashboard" = "Ctrl+F12";
|
"plasmashell"."show dashboard" = "Ctrl+F12";
|
||||||
"plasmashell"."show-barcode" = [ ];
|
"plasmashell"."show-barcode" = [];
|
||||||
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
||||||
"plasmashell"."stop current activity" = "Meta+S";
|
"plasmashell"."stop current activity" = "Meta+S";
|
||||||
"plasmashell"."switch to next activity" = [ ];
|
"plasmashell"."switch to next activity" = [];
|
||||||
"plasmashell"."switch to previous activity" = [ ];
|
"plasmashell"."switch to previous activity" = [];
|
||||||
"plasmashell"."toggle do not disturb" = [ ];
|
"plasmashell"."toggle do not disturb" = [];
|
||||||
"services/firefox.desktop"."_launch" = "Meta+F";
|
"services/firefox.desktop"."_launch" = "Meta+F";
|
||||||
"services/firefox.desktop"."new-private-window" = "Meta+Shift+F";
|
"services/firefox.desktop"."new-private-window" = "Meta+Shift+F";
|
||||||
"services/org.wezfurlong.wezterm.desktop"."_launch" = "Meta+Return";
|
"services/org.wezfurlong.wezterm.desktop"."_launch" = "Meta+Return";
|
||||||
|
};
|
||||||
|
configFile = {
|
||||||
|
"baloofilerc"."Basic Settings"."Indexing-Enabled".value = false;
|
||||||
|
"baloofilerc"."General"."dbVersion".value = 2;
|
||||||
|
"baloofilerc"."General"."exclude filters".value = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
||||||
|
"baloofilerc"."General"."exclude filters version".value = 9;
|
||||||
|
"dolphinrc"."IconsMode"."PreviewSize".value = 96;
|
||||||
|
"dolphinrc"."KFileDialog Settings"."Places Icons Auto-resize".value = false;
|
||||||
|
"dolphinrc"."KFileDialog Settings"."Places Icons Static Size".value = 22;
|
||||||
|
"kactivitymanagerdrc"."activities"."4c4b4e59-b0da-4a45-b9cc-729233bb1e9a".value = "Default";
|
||||||
|
"kactivitymanagerdrc"."main"."currentActivity".value = "4c4b4e59-b0da-4a45-b9cc-729233bb1e9a";
|
||||||
|
"kcminputrc"."Libinput/12972/18/Framework Laptop 16 Keyboard Module - ANSI Consumer Control"."Enabled".value = true;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Mouse"."Enabled".value = false;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Mouse"."PointerAccelerationProfile".value = 1;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."ClickMethod".value = 2;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."DisableWhileTyping".value = true;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."Enabled".value = true;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."NaturalScroll".value = true;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."PointerAcceleration".value = 1.000;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."PointerAccelerationProfile".value = 1;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."ScrollFactor".value = 0.1;
|
||||||
|
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."TapDragLock".value = false;
|
||||||
|
"kcminputrc"."Libinput/5426/123/Razer Razer Viper Ultimate Dongle"."PointerAccelerationProfile".value = 1;
|
||||||
|
"kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat".value = true;
|
||||||
|
"kded5rc"."Module-browserintegrationreminder"."autoload".value = false;
|
||||||
|
"kded5rc"."Module-device_automounter"."autoload".value = false;
|
||||||
|
"kdeglobals"."DirSelect Dialog"."DirSelectDialog Size".value = "884,584";
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Allow Expansion".value = false;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Automatically select filename extension".value = true;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation".value = true;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Decoration position".value = 2;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode".value = 5;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."PathCombo Completionmode".value = 5;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Show Bookmarks".value = false;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Show Full Path".value = false;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Show Inline Previews".value = true;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Show Preview".value = false;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Show Speedbar".value = true;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Show hidden files".value = true;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Sort by".value = "Name";
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Sort directories first".value = true;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Sort hidden files last".value = false;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Sort reversed".value = false;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."Speedbar Width".value = 138;
|
||||||
|
"kdeglobals"."KFileDialog Settings"."View Style".value = "DetailTree";
|
||||||
|
"kdeglobals"."WM"."activeBackground".value = "49,54,59";
|
||||||
|
"kdeglobals"."WM"."activeBlend".value = "252,252,252";
|
||||||
|
"kdeglobals"."WM"."activeForeground".value = "252,252,252";
|
||||||
|
"kdeglobals"."WM"."inactiveBackground".value = "42,46,50";
|
||||||
|
"kdeglobals"."WM"."inactiveBlend".value = "161,169,177";
|
||||||
|
"kdeglobals"."WM"."inactiveForeground".value = "161,169,177";
|
||||||
|
"kglobalshortcutsrc"."ActivityManager"."_k_friendly_name".value = "Activity Manager";
|
||||||
|
"kglobalshortcutsrc"."KDE Keyboard Layout Switcher"."_k_friendly_name".value = "Keyboard Layout Switcher";
|
||||||
|
"kglobalshortcutsrc"."kaccess"."_k_friendly_name".value = "Accessibility";
|
||||||
|
"kglobalshortcutsrc"."kcm_touchpad"."_k_friendly_name".value = "Touchpad";
|
||||||
|
"kglobalshortcutsrc"."kmix"."_k_friendly_name".value = "Audio Volume";
|
||||||
|
"kglobalshortcutsrc"."ksmserver"."_k_friendly_name".value = "Session Management";
|
||||||
|
"kglobalshortcutsrc"."kwin"."_k_friendly_name".value = "KWin";
|
||||||
|
"kglobalshortcutsrc"."mediacontrol"."_k_friendly_name".value = "Media Controller";
|
||||||
|
"kglobalshortcutsrc"."org_kde_powerdevil"."_k_friendly_name".value = "KDE Power Management System";
|
||||||
|
"kglobalshortcutsrc"."plasmashell"."_k_friendly_name".value = "plasmashell";
|
||||||
|
"kiorc"."Confirmations"."ConfirmDelete".value = true;
|
||||||
|
"krunnerrc"."Plugins"."baloosearchEnabled".value = false;
|
||||||
|
"ksmserverrc"."General"."loginMode".value = "restoreSavedSession";
|
||||||
|
"kwalletrc"."Wallet"."First Use".value = false;
|
||||||
|
"kwinrc"."Desktops"."Id_1".value = "925ef4df-45a9-4cdc-a29f-0f6a17a59588";
|
||||||
|
"kwinrc"."Desktops"."Id_2".value = "04cca492-9c1d-4df0-b285-13986a1b84c5";
|
||||||
|
"kwinrc"."Desktops"."Id_3".value = "621ff3ad-7b86-46d3-98a9-443cafa07506";
|
||||||
|
"kwinrc"."Desktops"."Id_4".value = "d1845a81-9dba-4e59-848d-c4e3b7ffecfd";
|
||||||
|
"kwinrc"."Desktops"."Id_5".value = "067b338c-a332-4f57-afdd-2d15cc464039";
|
||||||
|
"kwinrc"."Desktops"."Id_6".value = "d1f16ccc-bf0b-4cb4-9275-456a6d2a92ef";
|
||||||
|
"kwinrc"."Desktops"."Number".value = 6;
|
||||||
|
"kwinrc"."Desktops"."Rows".value = 1;
|
||||||
|
"kwinrc"."Effect-translucency"."Inactive".value = 90;
|
||||||
|
"kwinrc"."Plugins"."translucencyEnabled".value = true;
|
||||||
|
"kwinrc"."Plugins"."wobblywindowsEnabled".value = true;
|
||||||
|
"kwinrc"."Tiling"."padding".value = 0;
|
||||||
|
"kwinrc"."Tiling/530b5b99-fb5c-526e-822b-a6ca66eb2461"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||||
|
"kwinrc"."Tiling/7162cb98-d4d5-5d5d-9367-29e0f5b63060"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||||
|
"kwinrc"."Tiling/7e0b89fb-bf08-5d5d-a334-0ecfa3cb7b04"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.2520833333333333},{\"width\":0.7479166666666595}]}";
|
||||||
|
"kwinrc"."Tiling/b139d5e7-0994-57d9-b378-1e6f13020bc3"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.45},{\"layoutDirection\":\"vertical\",\"tiles\":[{\"height\":0.5},{\"height\":0.5}],\"width\":0.55}]}";
|
||||||
|
"kwinrc"."Tiling/b4e8ebb4-a5b0-596a-b70d-9a1b27c4f05b"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.3312500000000039},{\"width\":0.6687499999999946}]}";
|
||||||
|
"kwinrc"."Tiling/e23d0cc4-ba9f-5b08-9f6b-33b2434ca622"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||||
|
"kwinrc"."Tiling/e688eb74-7230-5d02-a5e0-3b38a54bc04e"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
||||||
|
"kwinrc"."Wayland"."InputMethod[$e]".value = "/run/current-system/sw/share/applications/org.fcitx.Fcitx5.desktop";
|
||||||
|
"kwinrc"."Windows"."AutoRaise".value = true;
|
||||||
|
"kwinrc"."Windows"."AutoRaiseInterval".value = 250;
|
||||||
|
"kwinrc"."Windows"."DelayFocusInterval".value = 200;
|
||||||
|
"kwinrc"."Windows"."FocusPolicy".value = "FocusFollowsMouse";
|
||||||
|
"kwinrc"."Xwayland"."Scale".value = 1;
|
||||||
|
"kwinrc"."org.kde.kdecoration2"."ButtonsOnLeft".value = "MFS";
|
||||||
|
"kwinrulesrc"."1"."Description".value = "Application settings for discord";
|
||||||
|
"kwinrulesrc"."1"."clientmachine".value = "localhost";
|
||||||
|
"kwinrulesrc"."1"."desktops".value = "\\0";
|
||||||
|
"kwinrulesrc"."1"."desktopsrule".value = 2;
|
||||||
|
"kwinrulesrc"."1"."size".value = "1420,969";
|
||||||
|
"kwinrulesrc"."1"."skippager".value = true;
|
||||||
|
"kwinrulesrc"."1"."skippagerrule".value = 2;
|
||||||
|
"kwinrulesrc"."1"."title".value = "#all-gay-circlejerk-club | Vensuli - Discord";
|
||||||
|
"kwinrulesrc"."1"."windowrole".value = "browser-window";
|
||||||
|
"kwinrulesrc"."1"."wmclass".value = "discord";
|
||||||
|
"kwinrulesrc"."1"."wmclassmatch".value = 1;
|
||||||
|
"kwinrulesrc"."2"."Description".value = "Application settings for org.wezfurlong.wezterm";
|
||||||
|
"kwinrulesrc"."2"."clientmachine".value = "localhost";
|
||||||
|
"kwinrulesrc"."2"."desktops".value = "\\0";
|
||||||
|
"kwinrulesrc"."2"."size".value = "1420,969";
|
||||||
|
"kwinrulesrc"."2"."sizerule".value = 3;
|
||||||
|
"kwinrulesrc"."2"."skippager".value = true;
|
||||||
|
"kwinrulesrc"."2"."wmclass".value = "wezterm-gui org.wezfurlong.wezterm";
|
||||||
|
"kwinrulesrc"."2"."wmclasscomplete".value = true;
|
||||||
|
"kwinrulesrc"."2"."wmclassmatch".value = 1;
|
||||||
|
"kwinrulesrc"."3"."Description".value = "Application settings for org.wezfurlong.wezterm";
|
||||||
|
"kwinrulesrc"."3"."size".value = "1420,969";
|
||||||
|
"kwinrulesrc"."3"."sizerule".value = 3;
|
||||||
|
"kwinrulesrc"."3"."wmclass".value = "wezterm-gui org.wezfurlong.wezterm";
|
||||||
|
"kwinrulesrc"."3"."wmclasscomplete".value = true;
|
||||||
|
"kwinrulesrc"."3"."wmclassmatch".value = 1;
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."Description".value = "Window settings for discord";
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."clientmachine".value = "localhost";
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."skippager".value = true;
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."skippagerrule".value = 3;
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."title".value = "#all-gay-circlejerk-club | Vensuli - Discord";
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."types".value = 1;
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."windowrole".value = "browser-window";
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."windowrolematch".value = 1;
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."wmclass".value = "discord";
|
||||||
|
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."wmclassmatch".value = 1;
|
||||||
|
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."Description".value = "Application settings for org.wezfurlong.wezterm";
|
||||||
|
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."size".value = "1420,969";
|
||||||
|
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."sizerule".value = 3;
|
||||||
|
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."wmclass".value = "wezterm-gui org.wezfurlong.wezterm";
|
||||||
|
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."wmclasscomplete".value = true;
|
||||||
|
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."wmclassmatch".value = 1;
|
||||||
|
"kwinrulesrc"."General"."count".value = 2;
|
||||||
|
"kwinrulesrc"."General"."rules".value = "1,2";
|
||||||
|
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."Description".value = "Application settings for discord";
|
||||||
|
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."clientmachine".value = "localhost";
|
||||||
|
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."desktops".value = "\\0";
|
||||||
|
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."desktopsrule".value = 2;
|
||||||
|
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."wmclass".value = "discord";
|
||||||
|
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."wmclassmatch".value = 1;
|
||||||
|
"kxkbrc"."Layout"."DisplayNames".value = "";
|
||||||
|
"kxkbrc"."Layout"."LayoutList".value = "us";
|
||||||
|
"kxkbrc"."Layout"."ResetOldOptions".value = true;
|
||||||
|
"kxkbrc"."Layout"."Use".value = true;
|
||||||
|
"kxkbrc"."Layout"."VariantList".value = "";
|
||||||
|
"plasma-localerc"."Formats"."LANG".value = "en_US.utf8";
|
||||||
|
"systemsettingsrc"."KFileDialog Settings"."detailViewIconSize".value = 16;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
configFile = {
|
|
||||||
"baloofilerc"."Basic Settings"."Indexing-Enabled".value = false;
|
|
||||||
"baloofilerc"."General"."dbVersion".value = 2;
|
|
||||||
"baloofilerc"."General"."exclude filters".value = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
|
||||||
"baloofilerc"."General"."exclude filters version".value = 9;
|
|
||||||
"dolphinrc"."IconsMode"."PreviewSize".value = 96;
|
|
||||||
"dolphinrc"."KFileDialog Settings"."Places Icons Auto-resize".value = false;
|
|
||||||
"dolphinrc"."KFileDialog Settings"."Places Icons Static Size".value = 22;
|
|
||||||
"kactivitymanagerdrc"."activities"."4c4b4e59-b0da-4a45-b9cc-729233bb1e9a".value = "Default";
|
|
||||||
"kactivitymanagerdrc"."main"."currentActivity".value = "4c4b4e59-b0da-4a45-b9cc-729233bb1e9a";
|
|
||||||
"kcminputrc"."Libinput/12972/18/Framework Laptop 16 Keyboard Module - ANSI Consumer Control"."Enabled".value = true;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Mouse"."Enabled".value = false;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Mouse"."PointerAccelerationProfile".value = 1;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."ClickMethod".value = 2;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."DisableWhileTyping".value = true;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."Enabled".value = true;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."NaturalScroll".value = true;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."PointerAcceleration".value = 1.000;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."PointerAccelerationProfile".value = 1;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."ScrollFactor".value = 0.1;
|
|
||||||
"kcminputrc"."Libinput/2362/628/PIXA3854:00 093A:0274 Touchpad"."TapDragLock".value = false;
|
|
||||||
"kcminputrc"."Libinput/5426/123/Razer Razer Viper Ultimate Dongle"."PointerAccelerationProfile".value = 1;
|
|
||||||
"kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat".value = true;
|
|
||||||
"kded5rc"."Module-browserintegrationreminder"."autoload".value = false;
|
|
||||||
"kded5rc"."Module-device_automounter"."autoload".value = false;
|
|
||||||
"kdeglobals"."DirSelect Dialog"."DirSelectDialog Size".value = "884,584";
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Allow Expansion".value = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Automatically select filename extension".value = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Breadcrumb Navigation".value = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Decoration position".value = 2;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."LocationCombo Completionmode".value = 5;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."PathCombo Completionmode".value = 5;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Bookmarks".value = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Full Path".value = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Inline Previews".value = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Preview".value = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show Speedbar".value = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Show hidden files".value = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort by".value = "Name";
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort directories first".value = true;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort hidden files last".value = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Sort reversed".value = false;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."Speedbar Width".value = 138;
|
|
||||||
"kdeglobals"."KFileDialog Settings"."View Style".value = "DetailTree";
|
|
||||||
"kdeglobals"."WM"."activeBackground".value = "49,54,59";
|
|
||||||
"kdeglobals"."WM"."activeBlend".value = "252,252,252";
|
|
||||||
"kdeglobals"."WM"."activeForeground".value = "252,252,252";
|
|
||||||
"kdeglobals"."WM"."inactiveBackground".value = "42,46,50";
|
|
||||||
"kdeglobals"."WM"."inactiveBlend".value = "161,169,177";
|
|
||||||
"kdeglobals"."WM"."inactiveForeground".value = "161,169,177";
|
|
||||||
"kglobalshortcutsrc"."ActivityManager"."_k_friendly_name".value = "Activity Manager";
|
|
||||||
"kglobalshortcutsrc"."KDE Keyboard Layout Switcher"."_k_friendly_name".value = "Keyboard Layout Switcher";
|
|
||||||
"kglobalshortcutsrc"."kaccess"."_k_friendly_name".value = "Accessibility";
|
|
||||||
"kglobalshortcutsrc"."kcm_touchpad"."_k_friendly_name".value = "Touchpad";
|
|
||||||
"kglobalshortcutsrc"."kmix"."_k_friendly_name".value = "Audio Volume";
|
|
||||||
"kglobalshortcutsrc"."ksmserver"."_k_friendly_name".value = "Session Management";
|
|
||||||
"kglobalshortcutsrc"."kwin"."_k_friendly_name".value = "KWin";
|
|
||||||
"kglobalshortcutsrc"."mediacontrol"."_k_friendly_name".value = "Media Controller";
|
|
||||||
"kglobalshortcutsrc"."org_kde_powerdevil"."_k_friendly_name".value = "KDE Power Management System";
|
|
||||||
"kglobalshortcutsrc"."plasmashell"."_k_friendly_name".value = "plasmashell";
|
|
||||||
"kiorc"."Confirmations"."ConfirmDelete".value = true;
|
|
||||||
"krunnerrc"."Plugins"."baloosearchEnabled".value = false;
|
|
||||||
"ksmserverrc"."General"."loginMode".value = "restoreSavedSession";
|
|
||||||
"kwalletrc"."Wallet"."First Use".value = false;
|
|
||||||
"kwinrc"."Desktops"."Id_1".value = "925ef4df-45a9-4cdc-a29f-0f6a17a59588";
|
|
||||||
"kwinrc"."Desktops"."Id_2".value = "04cca492-9c1d-4df0-b285-13986a1b84c5";
|
|
||||||
"kwinrc"."Desktops"."Id_3".value = "621ff3ad-7b86-46d3-98a9-443cafa07506";
|
|
||||||
"kwinrc"."Desktops"."Id_4".value = "d1845a81-9dba-4e59-848d-c4e3b7ffecfd";
|
|
||||||
"kwinrc"."Desktops"."Id_5".value = "067b338c-a332-4f57-afdd-2d15cc464039";
|
|
||||||
"kwinrc"."Desktops"."Id_6".value = "d1f16ccc-bf0b-4cb4-9275-456a6d2a92ef";
|
|
||||||
"kwinrc"."Desktops"."Number".value = 6;
|
|
||||||
"kwinrc"."Desktops"."Rows".value = 1;
|
|
||||||
"kwinrc"."Effect-translucency"."Inactive".value = 90;
|
|
||||||
"kwinrc"."Plugins"."translucencyEnabled".value = true;
|
|
||||||
"kwinrc"."Plugins"."wobblywindowsEnabled".value = true;
|
|
||||||
"kwinrc"."Tiling"."padding".value = 0;
|
|
||||||
"kwinrc"."Tiling/530b5b99-fb5c-526e-822b-a6ca66eb2461"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
|
||||||
"kwinrc"."Tiling/7162cb98-d4d5-5d5d-9367-29e0f5b63060"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
|
||||||
"kwinrc"."Tiling/7e0b89fb-bf08-5d5d-a334-0ecfa3cb7b04"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.2520833333333333},{\"width\":0.7479166666666595}]}";
|
|
||||||
"kwinrc"."Tiling/b139d5e7-0994-57d9-b378-1e6f13020bc3"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.45},{\"layoutDirection\":\"vertical\",\"tiles\":[{\"height\":0.5},{\"height\":0.5}],\"width\":0.55}]}";
|
|
||||||
"kwinrc"."Tiling/b4e8ebb4-a5b0-596a-b70d-9a1b27c4f05b"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.3312500000000039},{\"width\":0.6687499999999946}]}";
|
|
||||||
"kwinrc"."Tiling/e23d0cc4-ba9f-5b08-9f6b-33b2434ca622"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
|
||||||
"kwinrc"."Tiling/e688eb74-7230-5d02-a5e0-3b38a54bc04e"."tiles".value = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
|
|
||||||
"kwinrc"."Wayland"."InputMethod[$e]".value = "/run/current-system/sw/share/applications/org.fcitx.Fcitx5.desktop";
|
|
||||||
"kwinrc"."Windows"."AutoRaise".value = true;
|
|
||||||
"kwinrc"."Windows"."AutoRaiseInterval".value = 250;
|
|
||||||
"kwinrc"."Windows"."DelayFocusInterval".value = 200;
|
|
||||||
"kwinrc"."Windows"."FocusPolicy".value = "FocusFollowsMouse";
|
|
||||||
"kwinrc"."Xwayland"."Scale".value = 1;
|
|
||||||
"kwinrc"."org.kde.kdecoration2"."ButtonsOnLeft".value = "MFS";
|
|
||||||
"kwinrulesrc"."1"."Description".value = "Application settings for discord";
|
|
||||||
"kwinrulesrc"."1"."clientmachine".value = "localhost";
|
|
||||||
"kwinrulesrc"."1"."desktops".value = "\\0";
|
|
||||||
"kwinrulesrc"."1"."desktopsrule".value = 2;
|
|
||||||
"kwinrulesrc"."1"."size".value = "1420,969";
|
|
||||||
"kwinrulesrc"."1"."skippager".value = true;
|
|
||||||
"kwinrulesrc"."1"."skippagerrule".value = 2;
|
|
||||||
"kwinrulesrc"."1"."title".value = "#all-gay-circlejerk-club | Vensuli - Discord";
|
|
||||||
"kwinrulesrc"."1"."windowrole".value = "browser-window";
|
|
||||||
"kwinrulesrc"."1"."wmclass".value = "discord";
|
|
||||||
"kwinrulesrc"."1"."wmclassmatch".value = 1;
|
|
||||||
"kwinrulesrc"."2"."Description".value = "Application settings for org.wezfurlong.wezterm";
|
|
||||||
"kwinrulesrc"."2"."clientmachine".value = "localhost";
|
|
||||||
"kwinrulesrc"."2"."desktops".value = "\\0";
|
|
||||||
"kwinrulesrc"."2"."size".value = "1420,969";
|
|
||||||
"kwinrulesrc"."2"."sizerule".value = 3;
|
|
||||||
"kwinrulesrc"."2"."skippager".value = true;
|
|
||||||
"kwinrulesrc"."2"."wmclass".value = "wezterm-gui org.wezfurlong.wezterm";
|
|
||||||
"kwinrulesrc"."2"."wmclasscomplete".value = true;
|
|
||||||
"kwinrulesrc"."2"."wmclassmatch".value = 1;
|
|
||||||
"kwinrulesrc"."3"."Description".value = "Application settings for org.wezfurlong.wezterm";
|
|
||||||
"kwinrulesrc"."3"."size".value = "1420,969";
|
|
||||||
"kwinrulesrc"."3"."sizerule".value = 3;
|
|
||||||
"kwinrulesrc"."3"."wmclass".value = "wezterm-gui org.wezfurlong.wezterm";
|
|
||||||
"kwinrulesrc"."3"."wmclasscomplete".value = true;
|
|
||||||
"kwinrulesrc"."3"."wmclassmatch".value = 1;
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."Description".value = "Window settings for discord";
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."clientmachine".value = "localhost";
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."skippager".value = true;
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."skippagerrule".value = 3;
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."title".value = "#all-gay-circlejerk-club | Vensuli - Discord";
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."types".value = 1;
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."windowrole".value = "browser-window";
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."windowrolematch".value = 1;
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."wmclass".value = "discord";
|
|
||||||
"kwinrulesrc"."8d9e7fc8-749c-434f-a178-e92133fc9374"."wmclassmatch".value = 1;
|
|
||||||
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."Description".value = "Application settings for org.wezfurlong.wezterm";
|
|
||||||
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."size".value = "1420,969";
|
|
||||||
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."sizerule".value = 3;
|
|
||||||
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."wmclass".value = "wezterm-gui org.wezfurlong.wezterm";
|
|
||||||
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."wmclasscomplete".value = true;
|
|
||||||
"kwinrulesrc"."94b88066-bf8f-4089-8678-61be77391e5c"."wmclassmatch".value = 1;
|
|
||||||
"kwinrulesrc"."General"."count".value = 2;
|
|
||||||
"kwinrulesrc"."General"."rules".value = "1,2";
|
|
||||||
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."Description".value = "Application settings for discord";
|
|
||||||
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."clientmachine".value = "localhost";
|
|
||||||
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."desktops".value = "\\0";
|
|
||||||
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."desktopsrule".value = 2;
|
|
||||||
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."wmclass".value = "discord";
|
|
||||||
"kwinrulesrc"."eb7a8cbc-de66-4f33-b018-25f1c6bc80fc"."wmclassmatch".value = 1;
|
|
||||||
"kxkbrc"."Layout"."DisplayNames".value = "";
|
|
||||||
"kxkbrc"."Layout"."LayoutList".value = "us";
|
|
||||||
"kxkbrc"."Layout"."ResetOldOptions".value = true;
|
|
||||||
"kxkbrc"."Layout"."Use".value = true;
|
|
||||||
"kxkbrc"."Layout"."VariantList".value = "";
|
|
||||||
"plasma-localerc"."Formats"."LANG".value = "en_US.utf8";
|
|
||||||
"systemsettingsrc"."KFileDialog Settings"."detailViewIconSize".value = 16;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
98
users/vy.nix
98
users/vy.nix
|
|
@ -1,53 +1,59 @@
|
||||||
{pkgs, lib, inputs, config, ...}: {
|
{
|
||||||
users.users.vy.packages = with pkgs; [
|
pkgs,
|
||||||
oculante
|
lib,
|
||||||
rnote
|
inputs,
|
||||||
audacity
|
config,
|
||||||
cosmic-store
|
...
|
||||||
jellyfin-media-player
|
}: {
|
||||||
keepassxc
|
users.users.vy.packages = with pkgs; [
|
||||||
onlyoffice-bin
|
oculante
|
||||||
signal-desktop
|
rnote
|
||||||
snapper
|
audacity
|
||||||
syncthingtray
|
cosmic-store
|
||||||
yt-dlp
|
jellyfin-media-player
|
||||||
zoom-us
|
keepassxc
|
||||||
toastify
|
onlyoffice-bin
|
||||||
];
|
signal-desktop
|
||||||
programs.kdeconnect.enable = true;
|
snapper
|
||||||
|
syncthingtray
|
||||||
|
yt-dlp
|
||||||
|
zoom-us
|
||||||
|
toastify
|
||||||
|
];
|
||||||
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-cjk-serif
|
noto-fonts-cjk-serif
|
||||||
noto-fonts-color-emoji
|
noto-fonts-color-emoji
|
||||||
];
|
];
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
services.snapper.configs = {
|
services.snapper.configs = {
|
||||||
home = {
|
home = {
|
||||||
SUBVOLUME = "/home";
|
SUBVOLUME = "/home";
|
||||||
ALLOW_USERS = ["vy"];
|
ALLOW_USERS = ["vy"];
|
||||||
TIMELINE_CREATE = true;
|
TIMELINE_CREATE = true;
|
||||||
TIMELINE_CLEANUP = true;
|
TIMELINE_CLEANUP = true;
|
||||||
TIMELINE_LIMIT_HOURLY = 5;
|
TIMELINE_LIMIT_HOURLY = 5;
|
||||||
TIMELINE_LIMIT_DAILY = 7;
|
TIMELINE_LIMIT_DAILY = 7;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
services.snapper.snapshotInterval = "*:0/5";
|
||||||
services.snapper.snapshotInterval = "*:0/5";
|
|
||||||
|
|
||||||
users.users.vy = {
|
users.users.vy = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = ["wheel" "audio" "video"];
|
extraGroups = ["wheel" "audio" "video"];
|
||||||
shell = pkgs.nushell;
|
shell = pkgs.nushell;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKLOGhoTauV+yBide0qYQzZ/0rRw7ImfrOTvuZxjIFl"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKLOGhoTauV+yBide0qYQzZ/0rRw7ImfrOTvuZxjIFl"
|
||||||
];
|
];
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.verbose = true;
|
home-manager.verbose = true;
|
||||||
home-manager.backupFileExtension = ".hm-bak";
|
home-manager.backupFileExtension = ".hm-bak";
|
||||||
home-manager.users.vy = import ./vy/HOME.nix {inherit inputs pkgs lib config;};
|
home-manager.users.vy = import ./vy/HOME.nix {inherit inputs pkgs lib config;};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,116 +1,116 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs = {
|
programs = {
|
||||||
bat = {
|
bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
theme = "gruvbox-dark";
|
theme = "gruvbox-dark";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
bottom = {
|
bottom = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
color = "gruvbox";
|
color = "gruvbox";
|
||||||
flags = {
|
flags = {
|
||||||
battery =
|
battery =
|
||||||
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||||
# then true
|
# then true
|
||||||
# else false;
|
# else false;
|
||||||
true;
|
true;
|
||||||
hide_time = true;
|
hide_time = true;
|
||||||
enable_gpu = true;
|
enable_gpu = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nushell = {
|
||||||
|
enable = true;
|
||||||
|
configFile.source = ./nushell/config.nu;
|
||||||
|
envFile.source = ./nushell/env.nu;
|
||||||
|
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
||||||
|
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
||||||
|
};
|
||||||
|
|
||||||
|
starship = {
|
||||||
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
|
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||||
|
};
|
||||||
|
|
||||||
|
wezterm = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = builtins.readFile ./wezterm.lua;
|
||||||
|
};
|
||||||
|
|
||||||
|
zellij = {
|
||||||
|
enable = true;
|
||||||
|
settings = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nushell = {
|
# services.syncthing = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
configFile.source = ./nushell/config.nu;
|
# # user = "tao";
|
||||||
envFile.source = ./nushell/env.nu;
|
# # dataDir = "/home/tao/sync";
|
||||||
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
# # configDir = "/home/tao/.config/syncthing";
|
||||||
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
# overrideDevices = true;
|
||||||
};
|
# overrideFolders = true;
|
||||||
|
# # openDefaultPorts = true;
|
||||||
|
# settings = {
|
||||||
|
# devices = {
|
||||||
|
# # we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
|
||||||
|
# # bootstrap by commenting out devices first and rebuild switch impurely
|
||||||
|
# "nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
|
||||||
|
# "nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
|
||||||
|
# "uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
|
||||||
|
# };
|
||||||
|
# folders = let
|
||||||
|
# devs = [
|
||||||
|
# "nocomputer"
|
||||||
|
# "nolaptop"
|
||||||
|
# "uwuraid"
|
||||||
|
# ];
|
||||||
|
# in {
|
||||||
|
# # "documents" = {
|
||||||
|
# # path = "/home/tao/documents";
|
||||||
|
# # devices = devs;
|
||||||
|
# # };
|
||||||
|
# "pictures" = {
|
||||||
|
# path = "/home/tao/pictures";
|
||||||
|
# devices = devs;
|
||||||
|
# };
|
||||||
|
# "projects" = {
|
||||||
|
# path = "/home/tao/projects";
|
||||||
|
# devices = devs;
|
||||||
|
# };
|
||||||
|
# "school" = {
|
||||||
|
# path = "/home/tao/school";
|
||||||
|
# devices = devs;
|
||||||
|
# };
|
||||||
|
# "sync" = {
|
||||||
|
# path = "/home/tao/sync";
|
||||||
|
# devices = devs;
|
||||||
|
# };
|
||||||
|
# # "work" = {
|
||||||
|
# # path = "/home/tao/work";
|
||||||
|
# # devices = devs;
|
||||||
|
# # };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
starship = {
|
home.username = "vy";
|
||||||
enable = true;
|
home.homeDirectory = "/home/vy";
|
||||||
enableNushellIntegration = true;
|
home.stateVersion = "23.11";
|
||||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
|
||||||
};
|
|
||||||
|
|
||||||
wezterm = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = builtins.readFile ./wezterm.lua;
|
|
||||||
};
|
|
||||||
|
|
||||||
zellij = {
|
|
||||||
enable = true;
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
|
|
||||||
zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableNushellIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# services.syncthing = {
|
|
||||||
# enable = true;
|
|
||||||
# # user = "tao";
|
|
||||||
# # dataDir = "/home/tao/sync";
|
|
||||||
# # configDir = "/home/tao/.config/syncthing";
|
|
||||||
# overrideDevices = true;
|
|
||||||
# overrideFolders = true;
|
|
||||||
# # openDefaultPorts = true;
|
|
||||||
# settings = {
|
|
||||||
# devices = {
|
|
||||||
# # we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
|
|
||||||
# # bootstrap by commenting out devices first and rebuild switch impurely
|
|
||||||
# "nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
|
|
||||||
# "nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
|
|
||||||
# "uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
|
|
||||||
# };
|
|
||||||
# folders = let
|
|
||||||
# devs = [
|
|
||||||
# "nocomputer"
|
|
||||||
# "nolaptop"
|
|
||||||
# "uwuraid"
|
|
||||||
# ];
|
|
||||||
# in {
|
|
||||||
# # "documents" = {
|
|
||||||
# # path = "/home/tao/documents";
|
|
||||||
# # devices = devs;
|
|
||||||
# # };
|
|
||||||
# "pictures" = {
|
|
||||||
# path = "/home/tao/pictures";
|
|
||||||
# devices = devs;
|
|
||||||
# };
|
|
||||||
# "projects" = {
|
|
||||||
# path = "/home/tao/projects";
|
|
||||||
# devices = devs;
|
|
||||||
# };
|
|
||||||
# "school" = {
|
|
||||||
# path = "/home/tao/school";
|
|
||||||
# devices = devs;
|
|
||||||
# };
|
|
||||||
# "sync" = {
|
|
||||||
# path = "/home/tao/sync";
|
|
||||||
# devices = devs;
|
|
||||||
# };
|
|
||||||
# # "work" = {
|
|
||||||
# # path = "/home/tao/work";
|
|
||||||
# # devices = devs;
|
|
||||||
# # };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
home.username = "vy";
|
|
||||||
home.homeDirectory = "/home/vy";
|
|
||||||
home.stateVersion = "23.11";
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue