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, ...}: {
|
||||
disko.devices = {
|
||||
disk.disk1 = {
|
||||
device = lib.mkDefault "/dev/sda";
|
||||
type = "disk";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
esp = {
|
||||
name = "ESP";
|
||||
start = "1M";
|
||||
end = "128M";
|
||||
type = "EF00";
|
||||
disko.devices = {
|
||||
disk.disk1 = {
|
||||
device = lib.mkDefault "/dev/sda";
|
||||
type = "disk";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
};
|
||||
};
|
||||
root = {
|
||||
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"];
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
esp = {
|
||||
name = "ESP";
|
||||
start = "1M";
|
||||
end = "128M";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
};
|
||||
};
|
||||
root = {
|
||||
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, ...}: {
|
||||
# services.displayManager.sddm.enable = true;
|
||||
# services.displayManager.cosmic-greeter.enable = false;
|
||||
services.desktopManager.cosmic.enable = true;
|
||||
# services.displayManager.sddm.enable = true;
|
||||
# services.displayManager.cosmic-greeter.enable = false;
|
||||
services.desktopManager.cosmic.enable = true;
|
||||
|
||||
environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||
environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||
|
||||
environment.cosmic.excludePackages = with pkgs; [
|
||||
cosmic-edit
|
||||
cosmic-player
|
||||
cosmic-term
|
||||
cosmic-wallpapers
|
||||
];
|
||||
environment.cosmic.excludePackages = with pkgs; [
|
||||
cosmic-edit
|
||||
cosmic-player
|
||||
cosmic-term
|
||||
cosmic-wallpapers
|
||||
];
|
||||
}
|
||||
|
|
|
|||
212
extras/dev.nix
212
extras/dev.nix
|
|
@ -1,118 +1,118 @@
|
|||
{pkgs, ...}: {
|
||||
# services.globalprotect = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# "vpn1.usfca.edu" = {
|
||||
# openconnect-args = "";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# services.globalprotect = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# "vpn1.usfca.edu" = {
|
||||
# openconnect-args = "";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# (llm.withPlugins (ps: with ps; [llm-openrouter]))
|
||||
# bash-language-server
|
||||
# digital
|
||||
# etcher
|
||||
# fontforge
|
||||
# freecad
|
||||
# llm
|
||||
# lychee # link checker
|
||||
# quickemu
|
||||
# radicle-node
|
||||
# vulkan-loader
|
||||
# act
|
||||
# aichat
|
||||
# aider-chat
|
||||
# asm-lsp
|
||||
b3sum
|
||||
devenv
|
||||
direnv
|
||||
gh
|
||||
# git-cliff
|
||||
hyperfine
|
||||
jujutsu
|
||||
just
|
||||
lldb
|
||||
# lua-language-server
|
||||
# markdown-oxide # markdown lsp
|
||||
qFlipper
|
||||
qemu
|
||||
sd
|
||||
sshfs
|
||||
taplo # toml lsp
|
||||
tio
|
||||
tokei # repo code stats
|
||||
typos
|
||||
environment.systemPackages = with pkgs; [
|
||||
# (llm.withPlugins (ps: with ps; [llm-openrouter]))
|
||||
# bash-language-server
|
||||
# digital
|
||||
# etcher
|
||||
# fontforge
|
||||
# freecad
|
||||
# llm
|
||||
# lychee # link checker
|
||||
# quickemu
|
||||
# radicle-node
|
||||
# vulkan-loader
|
||||
# act
|
||||
# aichat
|
||||
# aider-chat
|
||||
# asm-lsp
|
||||
b3sum
|
||||
devenv
|
||||
direnv
|
||||
gh
|
||||
# git-cliff
|
||||
hyperfine
|
||||
jujutsu
|
||||
just
|
||||
lldb
|
||||
# lua-language-server
|
||||
# markdown-oxide # markdown lsp
|
||||
qFlipper
|
||||
qemu
|
||||
sd
|
||||
sshfs
|
||||
taplo # toml lsp
|
||||
tio
|
||||
tokei # repo code stats
|
||||
typos
|
||||
|
||||
# # databases
|
||||
# sqlite
|
||||
# sqls
|
||||
# sqlx-cli
|
||||
# sea-orm-cli
|
||||
# rainfrog
|
||||
# # databases
|
||||
# sqlite
|
||||
# sqls
|
||||
# sqlx-cli
|
||||
# sea-orm-cli
|
||||
# rainfrog
|
||||
|
||||
# # arduino
|
||||
# arduino-language-server
|
||||
# arduino-cli
|
||||
# pkgsCross.avr.buildPackages.gcc
|
||||
# avrdude
|
||||
# ravedude
|
||||
# # arduino
|
||||
# arduino-language-server
|
||||
# arduino-cli
|
||||
# pkgsCross.avr.buildPackages.gcc
|
||||
# avrdude
|
||||
# ravedude
|
||||
|
||||
# c
|
||||
clang
|
||||
clang-tools
|
||||
gcc
|
||||
gdb
|
||||
gnumake
|
||||
# c
|
||||
clang
|
||||
clang-tools
|
||||
gcc
|
||||
gdb
|
||||
gnumake
|
||||
|
||||
# nix
|
||||
nil
|
||||
alejandra
|
||||
# nix
|
||||
nil
|
||||
alejandra
|
||||
|
||||
# python
|
||||
# pypy3
|
||||
python3
|
||||
# (python3.withPackages (ps:
|
||||
# with ps; [
|
||||
# llm
|
||||
# # llm-openrouter
|
||||
# ]))
|
||||
# python310Packages.python-lsp-server
|
||||
uv
|
||||
ruff
|
||||
# python
|
||||
# pypy3
|
||||
python3
|
||||
# (python3.withPackages (ps:
|
||||
# with ps; [
|
||||
# llm
|
||||
# # llm-openrouter
|
||||
# ]))
|
||||
# python310Packages.python-lsp-server
|
||||
uv
|
||||
ruff
|
||||
|
||||
# rust
|
||||
cargo-binstall
|
||||
bacon
|
||||
cargo-expand
|
||||
cargo-feature
|
||||
cargo-generate
|
||||
cargo-watch
|
||||
elf2uf2-rs
|
||||
flip-link
|
||||
mdbook
|
||||
mold-wrapped
|
||||
probe-rs
|
||||
rustup
|
||||
sccache
|
||||
trunk
|
||||
wasm-bindgen-cli
|
||||
];
|
||||
# rust
|
||||
cargo-binstall
|
||||
bacon
|
||||
cargo-expand
|
||||
cargo-feature
|
||||
cargo-generate
|
||||
cargo-watch
|
||||
elf2uf2-rs
|
||||
flip-link
|
||||
mdbook
|
||||
mold-wrapped
|
||||
probe-rs
|
||||
rustup
|
||||
sccache
|
||||
trunk
|
||||
wasm-bindgen-cli
|
||||
];
|
||||
|
||||
hardware.flipperzero.enable = true;
|
||||
hardware.flipperzero.enable = true;
|
||||
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb"
|
||||
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg"
|
||||
'';
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb"
|
||||
SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg"
|
||||
'';
|
||||
|
||||
# virtualisation.docker = {
|
||||
# enable = true;
|
||||
# storageDriver = "btrfs";
|
||||
# };
|
||||
# virtualisation.docker.rootless = {
|
||||
# enable = true;
|
||||
# setSocketVariable = true;
|
||||
# };
|
||||
# users.extraGroups.docker.members = ["tao"];
|
||||
# virtualisation.docker = {
|
||||
# enable = true;
|
||||
# storageDriver = "btrfs";
|
||||
# };
|
||||
# virtualisation.docker.rootless = {
|
||||
# enable = true;
|
||||
# setSocketVariable = true;
|
||||
# };
|
||||
# users.extraGroups.docker.members = ["tao"];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# boinctui
|
||||
];
|
||||
services.boinc = {
|
||||
enable = false;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
# boinctui
|
||||
];
|
||||
services.boinc = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
# services.foldingathome = {
|
||||
# enable = true;
|
||||
# team = 223518;
|
||||
# user = "Tao_Tien";
|
||||
# extraArgs = ["--passkey=76ba03d55acf116776ba03d55acf1167"];
|
||||
# };
|
||||
# services.foldingathome = {
|
||||
# enable = true;
|
||||
# team = 223518;
|
||||
# user = "Tao_Tien";
|
||||
# extraArgs = ["--passkey=76ba03d55acf116776ba03d55acf1167"];
|
||||
# };
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
programs.steam = {
|
||||
enable = true;
|
||||
# remotePlay.openFirewall = true;
|
||||
gamescopeSession.enable = false;
|
||||
# gamescopeSession.enable = false;
|
||||
};
|
||||
programs.gamemode.enable = true;
|
||||
programs.gamescope.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
temurin-jre-bin-17
|
||||
];
|
||||
networking.firewall.allowedTCPPorts = [25565];
|
||||
environment.systemPackages = with pkgs; [
|
||||
temurin-jre-bin-17
|
||||
];
|
||||
networking.firewall.allowedTCPPorts = [25565];
|
||||
|
||||
services.snapper.configs = {
|
||||
home = {
|
||||
SUBVOLUME = "/home";
|
||||
ALLOW_USERS = ["mc"];
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_LIMIT_HOURLY = "5";
|
||||
TIMELINE_LIMIT_DAILY = "7";
|
||||
services.snapper.configs = {
|
||||
home = {
|
||||
SUBVOLUME = "/home";
|
||||
ALLOW_USERS = ["mc"];
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_LIMIT_HOURLY = "5";
|
||||
TIMELINE_LIMIT_DAILY = "7";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.snapper.snapshotInterval = "*:0/5";
|
||||
services.snapper.snapshotInterval = "*:0/5";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,359 +1,359 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.services.snapper;
|
||||
cfg = config.services.snapper;
|
||||
|
||||
mkValue = v:
|
||||
if lib.isList v
|
||||
then "\"${
|
||||
lib.concatMapStringsSep " " (lib.escape [
|
||||
"\\"
|
||||
" "
|
||||
])
|
||||
v
|
||||
}\""
|
||||
else if v == true
|
||||
then "yes"
|
||||
else if v == false
|
||||
then "no"
|
||||
else if lib.isString v
|
||||
then "\"${v}\""
|
||||
else builtins.toJSON v;
|
||||
mkValue = v:
|
||||
if lib.isList v
|
||||
then "\"${
|
||||
lib.concatMapStringsSep " " (lib.escape [
|
||||
"\\"
|
||||
" "
|
||||
])
|
||||
v
|
||||
}\""
|
||||
else if v == true
|
||||
then "yes"
|
||||
else if v == false
|
||||
then "no"
|
||||
else if lib.isString v
|
||||
then "\"${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
|
||||
defaultOf = k:
|
||||
if k == "FSTYPE"
|
||||
then null
|
||||
else configOptions.${k}.default or null;
|
||||
# "it's recommended to always specify the filesystem type" -- man snapper-configs
|
||||
defaultOf = k:
|
||||
if k == "FSTYPE"
|
||||
then null
|
||||
else configOptions.${k}.default or null;
|
||||
|
||||
safeStr =
|
||||
lib.types.strMatching "[^\n\"]*"
|
||||
// {
|
||||
description = "string without line breaks or quotes";
|
||||
descriptionClass = "conjunction";
|
||||
safeStr =
|
||||
lib.types.strMatching "[^\n\"]*"
|
||||
// {
|
||||
description = "string without line breaks or quotes";
|
||||
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 {
|
||||
options.services.snapper = {
|
||||
snapshotRootOnBoot = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
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)}"
|
||||
options.services.snapper = {
|
||||
snapshotRootOnBoot = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to snapshot root on boot
|
||||
'';
|
||||
}
|
||||
// (lib.mapAttrs' (
|
||||
name: subvolume:
|
||||
lib.nameValuePair "snapper/configs/${name}" {
|
||||
text = lib.generators.toKeyValue {inherit mkKeyValue;} (
|
||||
lib.filterAttrs (k: v: v != defaultOf k) subvolume
|
||||
);
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
}
|
||||
)
|
||||
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, ...}: {
|
||||
users.users.tao.packages = with pkgs; [
|
||||
(python311Full.withPackages (ps:
|
||||
with ps; [
|
||||
# bokeh
|
||||
# datashader
|
||||
# hvplot
|
||||
# ipywidgets
|
||||
# ipywidgets
|
||||
# linkify-it-py
|
||||
# markdown-it-py
|
||||
# mdit-py-plugins
|
||||
# nbclient
|
||||
# numpy
|
||||
# pandas
|
||||
# panel
|
||||
# plotly
|
||||
# pyparsing
|
||||
# pyserial
|
||||
# scikit-learn
|
||||
# scipy
|
||||
# streamz
|
||||
# tkinter
|
||||
jupyter
|
||||
users.users.tao.packages = with pkgs; [
|
||||
(python311Full.withPackages (ps:
|
||||
with ps; [
|
||||
# bokeh
|
||||
# datashader
|
||||
# hvplot
|
||||
# ipywidgets
|
||||
# ipywidgets
|
||||
# linkify-it-py
|
||||
# markdown-it-py
|
||||
# mdit-py-plugins
|
||||
# nbclient
|
||||
# numpy
|
||||
# pandas
|
||||
# panel
|
||||
# plotly
|
||||
# pyparsing
|
||||
# pyserial
|
||||
# scikit-learn
|
||||
# scipy
|
||||
# streamz
|
||||
# tkinter
|
||||
jupyter
|
||||
|
||||
# pyserial
|
||||
bokeh
|
||||
datashader
|
||||
hvplot
|
||||
# ipython_blocking
|
||||
ipywidgets
|
||||
nbclient
|
||||
numpy
|
||||
pandas
|
||||
panel
|
||||
plotly
|
||||
pyparsing
|
||||
scikit-learn
|
||||
scipy
|
||||
streamz
|
||||
# pyserial
|
||||
bokeh
|
||||
datashader
|
||||
hvplot
|
||||
# ipython_blocking
|
||||
ipywidgets
|
||||
nbclient
|
||||
numpy
|
||||
pandas
|
||||
panel
|
||||
plotly
|
||||
pyparsing
|
||||
scikit-learn
|
||||
scipy
|
||||
streamz
|
||||
|
||||
tkinter
|
||||
linkify-it-py
|
||||
markdown-it-py
|
||||
mdit-py-plugins
|
||||
]))
|
||||
];
|
||||
tkinter
|
||||
linkify-it-py
|
||||
markdown-it-py
|
||||
mdit-py-plugins
|
||||
]))
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,62 +1,62 @@
|
|||
{config, ...}: {
|
||||
age.secrets.uwuraid.file = ../secrets/uwuraid.age;
|
||||
systemd.mounts = let
|
||||
opts = {
|
||||
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";};
|
||||
};
|
||||
in [
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/anime";
|
||||
where = "/mnt/uwuraid/anime";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/backup";
|
||||
where = "/mnt/uwuraid/backup";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/everything";
|
||||
where = "/mnt/uwuraid/everything";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/media";
|
||||
where = "/mnt/uwuraid/media";
|
||||
})
|
||||
# (opts
|
||||
# // {
|
||||
# what = "//100.97.47.81/isos";
|
||||
# where = "/mnt/uwuraid/isos";
|
||||
# })
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/photos";
|
||||
where = "/mnt/uwuraid/photos";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/virginia";
|
||||
where = "/mnt/uwuraid/virginia";
|
||||
})
|
||||
];
|
||||
systemd.automounts = let
|
||||
opts = {
|
||||
wantedBy = ["multi-user.target"];
|
||||
automountConfig = {
|
||||
TimeoutIdleSec = "60";
|
||||
# DirectoryMode
|
||||
};
|
||||
};
|
||||
in [
|
||||
(opts // {where = "/mnt/uwuraid/anime";})
|
||||
(opts // {where = "/mnt/uwuraid/backup";})
|
||||
(opts // {where = "/mnt/uwuraid/everything";})
|
||||
(opts // {where = "/mnt/uwuraid/media";})
|
||||
# (opts // {where = "/mnt/uwuraid/isos";})
|
||||
(opts // {where = "/mnt/uwuraid/photos";})
|
||||
(opts // {where = "/mnt/uwuraid/virginia";})
|
||||
];
|
||||
age.secrets.uwuraid.file = ../secrets/uwuraid.age;
|
||||
systemd.mounts = let
|
||||
opts = {
|
||||
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";};
|
||||
};
|
||||
in [
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/anime";
|
||||
where = "/mnt/uwuraid/anime";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/backup";
|
||||
where = "/mnt/uwuraid/backup";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/everything";
|
||||
where = "/mnt/uwuraid/everything";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/media";
|
||||
where = "/mnt/uwuraid/media";
|
||||
})
|
||||
# (opts
|
||||
# // {
|
||||
# what = "//100.97.47.81/isos";
|
||||
# where = "/mnt/uwuraid/isos";
|
||||
# })
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/photos";
|
||||
where = "/mnt/uwuraid/photos";
|
||||
})
|
||||
(opts
|
||||
// {
|
||||
what = "//100.97.47.81/virginia";
|
||||
where = "/mnt/uwuraid/virginia";
|
||||
})
|
||||
];
|
||||
systemd.automounts = let
|
||||
opts = {
|
||||
wantedBy = ["multi-user.target"];
|
||||
automountConfig = {
|
||||
TimeoutIdleSec = "60";
|
||||
# DirectoryMode
|
||||
};
|
||||
};
|
||||
in [
|
||||
(opts // {where = "/mnt/uwuraid/anime";})
|
||||
(opts // {where = "/mnt/uwuraid/backup";})
|
||||
(opts // {where = "/mnt/uwuraid/everything";})
|
||||
(opts // {where = "/mnt/uwuraid/media";})
|
||||
# (opts // {where = "/mnt/uwuraid/isos";})
|
||||
(opts // {where = "/mnt/uwuraid/photos";})
|
||||
(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 = {
|
||||
nixos.url = "nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||
nixos-hardware.url = "nixos-hardware/master";
|
||||
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.darwin.follows = "";
|
||||
inputs = {
|
||||
nixos.url = "nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||
nixos-hardware.url = "nixos-hardware/master";
|
||||
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
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 = {
|
||||
extra-substituters = [
|
||||
# "https://cosmic.cachix.org/"
|
||||
# "https://helix.cachix.org/"
|
||||
"https://devenv.cachix.org"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
# "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||
# "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
];
|
||||
};
|
||||
nixConfig = {
|
||||
extra-substituters = [
|
||||
# "https://cosmic.cachix.org/"
|
||||
# "https://helix.cachix.org/"
|
||||
"https://devenv.cachix.org"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
# "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||
# "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
];
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixos,
|
||||
self,
|
||||
nixpkgs,
|
||||
nixos-facter-modules,
|
||||
nixos-hardware,
|
||||
determinate,
|
||||
agenix,
|
||||
disko,
|
||||
home-manager,
|
||||
# nixos-cosmic,
|
||||
zen-browser,
|
||||
...
|
||||
} @ inputs: {
|
||||
nixosConfigurations = {
|
||||
NOcomputer = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs;};
|
||||
modules = [
|
||||
disko.nixosModules.disko
|
||||
nixos-hardware.nixosModules.common-cpu-amd
|
||||
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
||||
nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
|
||||
# nixos-hardware.common.gpu.nvidia.ampere
|
||||
agenix.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
./systems/BASED.nix
|
||||
./systems/NOcomputer.nix
|
||||
./users/tao.nix
|
||||
./extras/uwuraid.nix
|
||||
./extras/dev.nix
|
||||
./extras/gaming.nix
|
||||
./extras/folding.nix
|
||||
# nixos-cosmic.nixosModules.default
|
||||
./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;
|
||||
outputs = {
|
||||
nixos,
|
||||
self,
|
||||
nixpkgs,
|
||||
nixos-facter-modules,
|
||||
nixos-hardware,
|
||||
determinate,
|
||||
agenix,
|
||||
disko,
|
||||
home-manager,
|
||||
# nixos-cosmic,
|
||||
zen-browser,
|
||||
...
|
||||
} @ inputs: {
|
||||
nixosConfigurations = {
|
||||
NOcomputer = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs;};
|
||||
modules = [
|
||||
disko.nixosModules.disko
|
||||
nixos-hardware.nixosModules.common-cpu-amd
|
||||
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
||||
nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
|
||||
# nixos-hardware.common.gpu.nvidia.ampere
|
||||
agenix.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
./systems/BASED.nix
|
||||
./systems/NOcomputer.nix
|
||||
./users/tao.nix
|
||||
./extras/uwuraid.nix
|
||||
./extras/dev.nix
|
||||
./extras/gaming.nix
|
||||
./extras/folding.nix
|
||||
# nixos-cosmic.nixosModules.default
|
||||
./extras/cosmic.nix
|
||||
];
|
||||
};
|
||||
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";
|
||||
})
|
||||
];
|
||||
};
|
||||
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; [
|
||||
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
|
||||
# get these from /etc/ssh
|
||||
NOcomputer = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPv53GM1uDDOdRxIlHmpf6x2y13yT5bFDNyrgDGLAR1l";
|
||||
NOlaptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILtdTREsBxzg/8s0lVCwL+r18qMP8glxAKaKEg+71I6m";
|
||||
NOmom = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdPvIo0P00I27i9XQFngsklw/dSyoFs7EgRt7RvkbSq";
|
||||
systems = [NOcomputer NOlaptop NOmom];
|
||||
# get these from /etc/ssh
|
||||
NOcomputer = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPv53GM1uDDOdRxIlHmpf6x2y13yT5bFDNyrgDGLAR1l";
|
||||
NOlaptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILtdTREsBxzg/8s0lVCwL+r18qMP8glxAKaKEg+71I6m";
|
||||
NOmom = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGdPvIo0P00I27i9XQFngsklw/dSyoFs7EgRt7RvkbSq";
|
||||
systems = [NOcomputer NOlaptop NOmom];
|
||||
in {
|
||||
"uwuraid.age".publicKeys = systems;
|
||||
"syncthing-NOcomputer.age".publicKeys = systems;
|
||||
"syncthing-NOlaptop.age".publicKeys = systems;
|
||||
"syncthing-uwuraid.age".publicKeys = systems;
|
||||
"password-tao.age".publicKeys = systems;
|
||||
"uwuraid.age".publicKeys = systems;
|
||||
"syncthing-NOcomputer.age".publicKeys = systems;
|
||||
"syncthing-NOlaptop.age".publicKeys = systems;
|
||||
"syncthing-uwuraid.age".publicKeys = systems;
|
||||
"password-tao.age".publicKeys = systems;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,193 +1,193 @@
|
|||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# inputs.helix.packages.${pkgs.system}.default
|
||||
# screen
|
||||
bat
|
||||
bottom
|
||||
cifs-utils
|
||||
du-dust
|
||||
dumbpipe
|
||||
exfatprogs
|
||||
fastfetch
|
||||
ffmpeg
|
||||
firefox
|
||||
git
|
||||
helix
|
||||
inputs.agenix.packages.${pkgs.system}.default
|
||||
inputs.zen-browser.packages."${system}".default
|
||||
mesa
|
||||
mpv
|
||||
ouch
|
||||
pueue
|
||||
ripgrep
|
||||
# rustdesk
|
||||
sendme
|
||||
skim
|
||||
tree
|
||||
wezterm
|
||||
wget
|
||||
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
|
||||
environment.systemPackages = with pkgs; [
|
||||
# inputs.helix.packages.${pkgs.system}.default
|
||||
# screen
|
||||
bat
|
||||
bottom
|
||||
cifs-utils
|
||||
du-dust
|
||||
dumbpipe
|
||||
exfatprogs
|
||||
fastfetch
|
||||
ffmpeg
|
||||
firefox
|
||||
git
|
||||
helix
|
||||
inputs.agenix.packages.${pkgs.system}.default
|
||||
inputs.zen-browser.packages."${system}".default
|
||||
mesa
|
||||
mpv
|
||||
ouch
|
||||
pueue
|
||||
ripgrep
|
||||
# rustdesk
|
||||
sendme
|
||||
skim
|
||||
tree
|
||||
wezterm
|
||||
wget
|
||||
zstd
|
||||
];
|
||||
};
|
||||
programs.partition-manager.enable = lib.mkDefault true;
|
||||
|
||||
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";
|
||||
};
|
||||
# programs.nh = {
|
||||
# enable = true;
|
||||
# };
|
||||
|
||||
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";
|
||||
# };
|
||||
programs.firefox.enable = true;
|
||||
programs.firefox.policies = {
|
||||
DisablePocket = true;
|
||||
PasswordManagerEnabled = false;
|
||||
NoDefaultBookmarks = false;
|
||||
};
|
||||
programs.firefox.preferences = {
|
||||
"media.ffmpeg.vaapi.enabled" = true;
|
||||
|
||||
systemd.extraConfig = ''
|
||||
DefaultTimeoutStopSec=15s
|
||||
'';
|
||||
"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;
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
};
|
||||
"accessibility.browsewithcaret_shortcut.enabled" = false;
|
||||
"browser.bookmarks.restore_default_bookmarks" = false;
|
||||
};
|
||||
|
||||
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"
|
||||
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
|
||||
];
|
||||
};
|
||||
nixpkgs.config = {allowUnfree = true;};
|
||||
nix.nixPath = ["nixpkgs=${pkgs.path}"];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
system.stateVersion = lib.mkDefault "23.05";
|
||||
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
|
||||
];
|
||||
};
|
||||
|
||||
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,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvtopPackages.nvidia
|
||||
# egl-wayland
|
||||
# gpt4all-chat
|
||||
# nvidia-vaapi-driver
|
||||
# foldingathome
|
||||
# gwe
|
||||
# openrgb
|
||||
];
|
||||
services.hardware.openrgb.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvtopPackages.nvidia
|
||||
# egl-wayland
|
||||
# gpt4all-chat
|
||||
# nvidia-vaapi-driver
|
||||
# foldingathome
|
||||
# gwe
|
||||
# openrgb
|
||||
];
|
||||
services.hardware.openrgb.enable = true;
|
||||
|
||||
services.tailscale.useRoutingFeatures = "both";
|
||||
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||
services.tailscale.useRoutingFeatures = "both";
|
||||
boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||
|
||||
environment.sessionVariables = {
|
||||
# wayland chromium workaround
|
||||
NIXOS_OZONE_WL = "1";
|
||||
environment.sessionVariables = {
|
||||
# wayland chromium workaround
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
# firefox nvidia-vaapi-driver
|
||||
# MOZ_DISABLE_RDD_SANDBOX = "1";
|
||||
# LIBVA_DRIVER_NAME = "nvidia";
|
||||
};
|
||||
# firefox nvidia-vaapi-driver
|
||||
# MOZ_DISABLE_RDD_SANDBOX = "1";
|
||||
# LIBVA_DRIVER_NAME = "nvidia";
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
powerManagement.enable = true;
|
||||
# options: production, beta, vulkan_beta, latest
|
||||
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
systemd.services.nvpl = {
|
||||
description = "Increase GPU power limit to 400w";
|
||||
script = "/run/current-system/sw/bin/nvidia-smi -pl=400";
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
hardware.nvidia = {
|
||||
powerManagement.enable = true;
|
||||
# options: production, beta, vulkan_beta, latest
|
||||
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
systemd.services.nvpl = {
|
||||
description = "Increase GPU power limit to 400w";
|
||||
script = "/run/current-system/sw/bin/nvidia-smi -pl=400";
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
|
||||
services.udev.packages = [pkgs.openrgb];
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3c5", MODE="0666"
|
||||
'';
|
||||
services.udev.packages = [pkgs.openrgb];
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3c5", MODE="0666"
|
||||
'';
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
# boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||
boot.kernelModules = ["i2c-dev" "kvm-amd" "nct6775"];
|
||||
boot.kernelParams = ["nvidia-drm.modeset=1"];
|
||||
# boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
||||
# boot.blacklistedKernelModules = with config.boot.kernelPackages; [ k10temp ];
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
# boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||
boot.kernelModules = ["i2c-dev" "kvm-amd" "nct6775"];
|
||||
boot.kernelParams = ["nvidia-drm.modeset=1"];
|
||||
# boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
||||
# boot.blacklistedKernelModules = with config.boot.kernelPackages; [ k10temp ];
|
||||
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home_snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/home/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home_snaps/" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/home/tao/games" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/2B28-151D";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/var" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos/var" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/tmp" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos/tmp" "discard=async"];
|
||||
};
|
||||
swapDevices = [{device = "/dev/disk/by-uuid/ca0ed3d7-8758-4ac7-b016-8b4cd9608ded";}];
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home_snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/home/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home_snaps/" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/home/tao/games" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/2B28-151D";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/var" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos/var" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/tmp" = {
|
||||
device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos/tmp" "discard=async"];
|
||||
};
|
||||
swapDevices = [{device = "/dev/disk/by-uuid/ca0ed3d7-8758-4ac7-b016-8b4cd9608ded";}];
|
||||
|
||||
# windows can suck my ass
|
||||
time.hardwareClockInLocalTime = true;
|
||||
# windows can suck my ass
|
||||
time.hardwareClockInLocalTime = true;
|
||||
|
||||
networking.hostName = "NOcomputer";
|
||||
networking.hostName = "NOcomputer";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,103 +1,103 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# services.pipewire.wireplumber.extraConfig = {
|
||||
# "wireplumber.settings" = {
|
||||
# "device.routes.default-source-volume" = 0.42;
|
||||
# };
|
||||
# };
|
||||
# services.pipewire.wireplumber.extraConfig = {
|
||||
# "wireplumber.settings" = {
|
||||
# "device.routes.default-source-volume" = 0.42;
|
||||
# };
|
||||
# };
|
||||
|
||||
services.rsyslogd = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
module(load="imudp")
|
||||
input(type="imudp" port="514")
|
||||
services.rsyslogd = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
module(load="imudp")
|
||||
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 = [
|
||||
# (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
|
||||
# ];
|
||||
# });
|
||||
# })
|
||||
# ];
|
||||
services.udev.extraRules = ''
|
||||
# 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"
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
fw-ectool
|
||||
framework-tool
|
||||
nvtopPackages.amd
|
||||
];
|
||||
# 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.fwupd.enable = true;
|
||||
services.tailscale.useRoutingFeatures = "client";
|
||||
systemd.services."backlight@backlight:amdgpu_bl2".enable = false;
|
||||
services.fprintd.enable = true;
|
||||
|
||||
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.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";
|
||||
|
||||
services.udev.extraRules = ''
|
||||
# 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";
|
||||
networking.hostName = "NOlaptop";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,111 +1,111 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# prescurve
|
||||
# libsForQt5.skanpage
|
||||
intel-gpu-tools
|
||||
powertop
|
||||
fw-ectool
|
||||
environment.systemPackages = with pkgs; [
|
||||
# prescurve
|
||||
# libsForQt5.skanpage
|
||||
intel-gpu-tools
|
||||
powertop
|
||||
fw-ectool
|
||||
|
||||
libimobiledevice
|
||||
ifuse
|
||||
];
|
||||
libimobiledevice
|
||||
ifuse
|
||||
];
|
||||
|
||||
services.tailscale.useRoutingFeatures = "client";
|
||||
services.tailscale.useRoutingFeatures = "client";
|
||||
|
||||
powerManagement.powertop.enable = true;
|
||||
services.fwupd.enable = true;
|
||||
services.fprintd.enable = true;
|
||||
hardware.sensor.iio.enable = true;
|
||||
services.usbmuxd.enable = true;
|
||||
services.usbmuxd.package = pkgs.usbmuxd2;
|
||||
powerManagement.powertop.enable = true;
|
||||
services.fwupd.enable = true;
|
||||
services.fprintd.enable = true;
|
||||
hardware.sensor.iio.enable = true;
|
||||
services.usbmuxd.enable = true;
|
||||
services.usbmuxd.package = pkgs.usbmuxd2;
|
||||
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
|
||||
# systemd.user.services.backlight = {
|
||||
# # description = "";
|
||||
# ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight";
|
||||
# Restart = "on-failure";
|
||||
# wantedBy = [ "default.target" ];
|
||||
# };
|
||||
# hardware.sane = {
|
||||
# enable = true;
|
||||
# extraBackends = [ pkgs.epkowa ];
|
||||
# };
|
||||
# systemd.user.services.backlight = {
|
||||
# # description = "";
|
||||
# ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight";
|
||||
# Restart = "on-failure";
|
||||
# wantedBy = [ "default.target" ];
|
||||
# };
|
||||
# hardware.sane = {
|
||||
# enable = true;
|
||||
# extraBackends = [ pkgs.epkowa ];
|
||||
# };
|
||||
|
||||
services.udev.extraRules = ''
|
||||
# Ethernet expansion card
|
||||
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
||||
services.udev.extraRules = ''
|
||||
# Ethernet expansion card
|
||||
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/chmod g+w /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"
|
||||
'';
|
||||
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home-snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/home/tao/Games" = {
|
||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
swapDevices = [{device = "/dev/disk/by-uuid/ca55d0ea-c0db-44c5-af3a-e38eec803929";}];
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home-snaps/0/snapshot" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
fileSystems."/home/tao/Games" = {
|
||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=games" "nosuid" "nodev" "noatime" "compress-force=zstd:3" "users" "rw" "exec" "discard=async"];
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"];
|
||||
};
|
||||
swapDevices = [{device = "/dev/disk/by-uuid/ca55d0ea-c0db-44c5-af3a-e38eec803929";}];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"sd_mod"
|
||||
"thunderbolt"
|
||||
"usb_storage"
|
||||
"xhci_pci"
|
||||
];
|
||||
boot.kernelParams = [
|
||||
"acpi_osi=\"!Windows 2020\""
|
||||
"nvme.noacpi=1"
|
||||
"i915.enable_psr=1"
|
||||
];
|
||||
boot.blacklistedKernelModules = ["cros-usbpd-charger"];
|
||||
boot.extraModprobeConfig = ''options snd-hda-intel model=dell-headset-multi'';
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
powerManagement.cpuFreqGovernor = "powersave";
|
||||
systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
||||
# boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||
# boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"sd_mod"
|
||||
"thunderbolt"
|
||||
"usb_storage"
|
||||
"xhci_pci"
|
||||
];
|
||||
boot.kernelParams = [
|
||||
"acpi_osi=\"!Windows 2020\""
|
||||
"nvme.noacpi=1"
|
||||
"i915.enable_psr=1"
|
||||
];
|
||||
boot.blacklistedKernelModules = ["cros-usbpd-charger"];
|
||||
boot.extraModprobeConfig = ''options snd-hda-intel model=dell-headset-multi'';
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
powerManagement.cpuFreqGovernor = "powersave";
|
||||
systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
||||
# boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
|
||||
# boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1";
|
||||
|
||||
nix.buildMachines = [
|
||||
{
|
||||
hostName = "nocomputer";
|
||||
systems = ["x86_64-linux" "i686-linux"];
|
||||
supportedFeatures = [
|
||||
"benchmark"
|
||||
"big-parallel"
|
||||
"gccarch-znver4"
|
||||
"kvm"
|
||||
"nixos-test"
|
||||
];
|
||||
}
|
||||
{
|
||||
hostName = "nolaptop";
|
||||
systems = ["x86_64-linux" "i686-linux"];
|
||||
supportedFeatures = [
|
||||
"benchmark"
|
||||
"big-parallel"
|
||||
"gccarch-znver4"
|
||||
"kvm"
|
||||
"nixos-test"
|
||||
];
|
||||
}
|
||||
];
|
||||
nix.extraOptions = ''
|
||||
builders-use-substitutes = true
|
||||
'';
|
||||
nix.distributedBuilds = true;
|
||||
nix.buildMachines = [
|
||||
{
|
||||
hostName = "nocomputer";
|
||||
systems = ["x86_64-linux" "i686-linux"];
|
||||
supportedFeatures = [
|
||||
"benchmark"
|
||||
"big-parallel"
|
||||
"gccarch-znver4"
|
||||
"kvm"
|
||||
"nixos-test"
|
||||
];
|
||||
}
|
||||
{
|
||||
hostName = "nolaptop";
|
||||
systems = ["x86_64-linux" "i686-linux"];
|
||||
supportedFeatures = [
|
||||
"benchmark"
|
||||
"big-parallel"
|
||||
"gccarch-znver4"
|
||||
"kvm"
|
||||
"nixos-test"
|
||||
];
|
||||
}
|
||||
];
|
||||
nix.extraOptions = ''
|
||||
builders-use-substitutes = true
|
||||
'';
|
||||
nix.distributedBuilds = true;
|
||||
|
||||
networking.hostName = "NOmom";
|
||||
networking.hostName = "NOmom";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
{lib, ...}: {
|
||||
nixpkgs.hostPlatform = "riscv64";
|
||||
nixpkgs.hostPlatform = "riscv64";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,80 +1,80 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
modulesPath,
|
||||
pkgs,
|
||||
...
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
modulesPath,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
bat
|
||||
bottom
|
||||
cifs-utils
|
||||
du-dust
|
||||
exfatprogs
|
||||
fastfetch
|
||||
git
|
||||
helix
|
||||
inputs.agenix.packages.${pkgs.system}.default
|
||||
ouch
|
||||
pueue
|
||||
ripgrep
|
||||
rustdesk
|
||||
skim
|
||||
tree
|
||||
# wezterm
|
||||
wget
|
||||
zstd
|
||||
zellij
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
bat
|
||||
bottom
|
||||
cifs-utils
|
||||
du-dust
|
||||
exfatprogs
|
||||
fastfetch
|
||||
git
|
||||
helix
|
||||
inputs.agenix.packages.${pkgs.system}.default
|
||||
ouch
|
||||
pueue
|
||||
ripgrep
|
||||
rustdesk
|
||||
skim
|
||||
tree
|
||||
# wezterm
|
||||
wget
|
||||
zstd
|
||||
zellij
|
||||
];
|
||||
|
||||
services.openssh.enable = true;
|
||||
networking.networkmanager.enable = true;
|
||||
services.tailscale.enable = true;
|
||||
services.resolved.enable = true;
|
||||
services.openssh.enable = true;
|
||||
networking.networkmanager.enable = true;
|
||||
services.tailscale.enable = true;
|
||||
services.resolved.enable = true;
|
||||
|
||||
security.sudo-rs.enable = true;
|
||||
security.sudo.enable = false;
|
||||
users.users.mc = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
shell = pkgs.nushell;
|
||||
};
|
||||
security.sudo-rs.enable = true;
|
||||
security.sudo.enable = false;
|
||||
users.users.mc = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
shell = pkgs.nushell;
|
||||
};
|
||||
|
||||
environment.variables = {
|
||||
EDITOR = "hx";
|
||||
VISUAL = "hx";
|
||||
PAGER = "bat";
|
||||
SKIM_DEFAULT_COMMAND = "rg --files";
|
||||
};
|
||||
environment.variables = {
|
||||
EDITOR = "hx";
|
||||
VISUAL = "hx";
|
||||
PAGER = "bat";
|
||||
SKIM_DEFAULT_COMMAND = "rg --files";
|
||||
};
|
||||
|
||||
time.timeZone = lib.mkDefault "US/Pacific";
|
||||
time.timeZone = lib.mkDefault "US/Pacific";
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
};
|
||||
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 = ["btrfs"];
|
||||
boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "sr_mod" "virtio_blk"];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.loader.systemd-boot.enable = lib.mkDefault true;
|
||||
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
|
||||
boot.loader.timeout = lib.mkForce 1;
|
||||
boot.supportedFilesystems = ["btrfs"];
|
||||
boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "sr_mod" "virtio_blk"];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
auto-optimise-store = true;
|
||||
trusted-users = ["root" "@wheel"];
|
||||
};
|
||||
nixpkgs.config = {allowUnfree = true;};
|
||||
nix.settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
auto-optimise-store = true;
|
||||
trusted-users = ["root" "@wheel"];
|
||||
};
|
||||
nixpkgs.config = {allowUnfree = true;};
|
||||
|
||||
networking.hostName = "NOserver-minecraft";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
system.stateVersion = lib.mkDefault "23.05";
|
||||
networking.hostName = "NOserver-minecraft";
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
system.stateVersion = lib.mkDefault "23.05";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,48 +1,48 @@
|
|||
{lib, ...}: {
|
||||
disko.devices = {
|
||||
disk.disk1 = {
|
||||
device = lib.mkDefault "/dev/nvme0n1";
|
||||
type = "disk";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
esp = {
|
||||
name = "ESP";
|
||||
size = "500M";
|
||||
type = "EF00";
|
||||
disko.devices = {
|
||||
disk.disk1 = {
|
||||
device = lib.mkDefault "/dev/nvme0n1";
|
||||
type = "disk";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
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,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
users.users.tao.packages = with pkgs; [
|
||||
# boxxy
|
||||
calibre
|
||||
# carapace
|
||||
# cloud-hypervisor
|
||||
# davinci-resolve
|
||||
# fractal
|
||||
# freerdp
|
||||
# inputs.plasma-manager.packages.${pkgs.system}.default
|
||||
# jellyfin-mpv-shim
|
||||
# libsForQt5.kcharselect
|
||||
# mendeley
|
||||
# piper
|
||||
# slack
|
||||
# tectonic
|
||||
# texlab
|
||||
# thunderbird
|
||||
# wkhtmltopdf
|
||||
appimage-run
|
||||
aspell
|
||||
aspellDicts.en
|
||||
bottles
|
||||
darktable
|
||||
deluge
|
||||
discord
|
||||
freecad-wayland
|
||||
gocryptfs
|
||||
gurk-rs
|
||||
jellyfin-media-player
|
||||
# kdePackages.plasma-vault
|
||||
keepassxc
|
||||
# leetcode-cli
|
||||
man-pages
|
||||
man-pages-posix
|
||||
miniserve
|
||||
mousai
|
||||
nix-output-monitor
|
||||
nixos-anywhere
|
||||
nufmt
|
||||
nushell
|
||||
nvd
|
||||
obs-studio
|
||||
oculante
|
||||
onlyoffice-bin
|
||||
pandoc
|
||||
pipe-rename
|
||||
prusa-slicer
|
||||
qmk
|
||||
qmk-udev-rules
|
||||
qmk_hid
|
||||
ripgrep-all
|
||||
signal-desktop
|
||||
slack
|
||||
snapper
|
||||
starship
|
||||
syncthingtray
|
||||
taskwarrior3
|
||||
tinymist
|
||||
toastify
|
||||
typst
|
||||
usbutils
|
||||
vial
|
||||
wezterm
|
||||
wl-clipboard-rs
|
||||
yt-dlp
|
||||
zathura
|
||||
zellij
|
||||
zoom-us
|
||||
zoxide
|
||||
];
|
||||
programs.adb.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
environment.shells = with pkgs; [nushell];
|
||||
users.users.tao.packages = with pkgs; [
|
||||
# boxxy
|
||||
calibre
|
||||
# carapace
|
||||
# cloud-hypervisor
|
||||
# davinci-resolve
|
||||
# fractal
|
||||
# freerdp
|
||||
# inputs.plasma-manager.packages.${pkgs.system}.default
|
||||
# jellyfin-mpv-shim
|
||||
# libsForQt5.kcharselect
|
||||
# mendeley
|
||||
# piper
|
||||
# slack
|
||||
# tectonic
|
||||
# texlab
|
||||
# thunderbird
|
||||
# wkhtmltopdf
|
||||
appimage-run
|
||||
aspell
|
||||
aspellDicts.en
|
||||
bottles
|
||||
darktable
|
||||
deluge
|
||||
discord
|
||||
freecad-wayland
|
||||
gocryptfs
|
||||
gurk-rs
|
||||
jellyfin-media-player
|
||||
# kdePackages.plasma-vault
|
||||
keepassxc
|
||||
# leetcode-cli
|
||||
man-pages
|
||||
man-pages-posix
|
||||
miniserve
|
||||
mousai
|
||||
nix-output-monitor
|
||||
nixos-anywhere
|
||||
nufmt
|
||||
nushell
|
||||
nvd
|
||||
obs-studio
|
||||
oculante
|
||||
onlyoffice-bin
|
||||
pandoc
|
||||
pipe-rename
|
||||
prusa-slicer
|
||||
qmk
|
||||
qmk-udev-rules
|
||||
qmk_hid
|
||||
ripgrep-all
|
||||
signal-desktop
|
||||
slack
|
||||
snapper
|
||||
starship
|
||||
syncthingtray
|
||||
taskwarrior3
|
||||
tinymist
|
||||
toastify
|
||||
typst
|
||||
usbutils
|
||||
vial
|
||||
wezterm
|
||||
wl-clipboard-rs
|
||||
yt-dlp
|
||||
zathura
|
||||
zellij
|
||||
zoom-us
|
||||
zoxide
|
||||
];
|
||||
programs.adb.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
environment.shells = with pkgs; [nushell];
|
||||
|
||||
# virtualisation.libvirtd.enable = true;
|
||||
# virtualisation.libvirtd.qemu.swtpm.enable = true;
|
||||
# virtualisation.spiceUSBRedirection.enable = true;
|
||||
# programs.virt-manager.enable = true;
|
||||
# virtualisation.libvirtd.enable = true;
|
||||
# virtualisation.libvirtd.qemu.swtpm.enable = true;
|
||||
# virtualisation.spiceUSBRedirection.enable = true;
|
||||
# programs.virt-manager.enable = true;
|
||||
|
||||
# virtualisation.virtualbox.host = {
|
||||
# enable = true;
|
||||
# enableExtensionPack = true;
|
||||
# };
|
||||
# virtualisation.virtualbox.host = {
|
||||
# enable = true;
|
||||
# enableExtensionPack = true;
|
||||
# };
|
||||
|
||||
# nixpkgs.overlays = [
|
||||
# (final: prev: {
|
||||
# options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: {
|
||||
# configOptions.FSTYPE = lib.mkOption {
|
||||
# type = lib.types.enum ["btrfs" "bcachefs"];
|
||||
# };
|
||||
# });
|
||||
# })
|
||||
# ];
|
||||
# nixpkgs.overlays = [
|
||||
# (final: prev: {
|
||||
# options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: {
|
||||
# configOptions.FSTYPE = lib.mkOption {
|
||||
# type = lib.types.enum ["btrfs" "bcachefs"];
|
||||
# };
|
||||
# });
|
||||
# })
|
||||
# ];
|
||||
|
||||
disabledModules = ["services/misc/snapper.nix"];
|
||||
imports = [../extras/snapper.nix];
|
||||
services.snapper.configs = {
|
||||
home = {
|
||||
SUBVOLUME = "/home";
|
||||
# FSTYPE = "bcachefs";
|
||||
FSTYPE =
|
||||
if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||
then "bcachefs"
|
||||
else "btrfs";
|
||||
ALLOW_USERS = ["tao"];
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_LIMIT_HOURLY = 5;
|
||||
TIMELINE_LIMIT_DAILY = 7;
|
||||
disabledModules = ["services/misc/snapper.nix"];
|
||||
imports = [../extras/snapper.nix];
|
||||
services.snapper.configs = {
|
||||
home = {
|
||||
SUBVOLUME = "/home";
|
||||
# FSTYPE = "bcachefs";
|
||||
FSTYPE =
|
||||
if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||
then "bcachefs"
|
||||
else "btrfs";
|
||||
ALLOW_USERS = ["tao"];
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_LIMIT_HOURLY = 5;
|
||||
TIMELINE_LIMIT_DAILY = 7;
|
||||
};
|
||||
};
|
||||
};
|
||||
services.snapper.snapshotInterval = "*:0/5";
|
||||
services.snapper.snapshotInterval = "*:0/5";
|
||||
|
||||
hardware.keyboard.qmk.enable = true;
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||
'';
|
||||
# services.ratbagd.enable = true;
|
||||
hardware.keyboard.qmk.enable = true;
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||
'';
|
||||
# services.ratbagd.enable = true;
|
||||
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||
v4l2loopback
|
||||
];
|
||||
boot.extraModprobeConfig = ''
|
||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
'';
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||
v4l2loopback
|
||||
];
|
||||
boot.extraModprobeConfig = ''
|
||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
'';
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
# (nerdfonts.override {fonts = ["FiraCode"];})
|
||||
nerd-fonts.fira-code
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-color-emoji
|
||||
ibm-plex
|
||||
cooper-hewitt
|
||||
];
|
||||
fonts.packages = with pkgs; [
|
||||
# (nerdfonts.override {fonts = ["FiraCode"];})
|
||||
nerd-fonts.fira-code
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-color-emoji
|
||||
ibm-plex
|
||||
cooper-hewitt
|
||||
];
|
||||
|
||||
documentation.enable = true;
|
||||
documentation.enable = true;
|
||||
|
||||
# age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age;
|
||||
users.users.tao = {
|
||||
isNormalUser = true;
|
||||
# hashedPasswordFile = config.age.secrets.password-tao.path;
|
||||
extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"];
|
||||
shell = pkgs.nushell;
|
||||
};
|
||||
# age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age;
|
||||
users.users.tao = {
|
||||
isNormalUser = true;
|
||||
# hashedPasswordFile = config.age.secrets.password-tao.path;
|
||||
extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"];
|
||||
shell = pkgs.nushell;
|
||||
};
|
||||
|
||||
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
||||
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.verbose = true;
|
||||
home-manager.backupFileExtension = ".hm-bak";
|
||||
home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;};
|
||||
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
||||
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.verbose = true;
|
||||
home-manager.backupFileExtension = ".hm-bak";
|
||||
home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,261 +1,261 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cargoFile = builtins.readFile ./cargo.toml;
|
||||
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-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||
cargoFile = builtins.readFile ./cargo.toml;
|
||||
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-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||
in {
|
||||
imports = [
|
||||
./boxxy.nix
|
||||
(import ./helix.nix {inherit pkgs inputs;})
|
||||
# ./plasma.nix
|
||||
# ./firefox.nix
|
||||
];
|
||||
imports = [
|
||||
./boxxy.nix
|
||||
(import ./helix.nix {inherit pkgs inputs;})
|
||||
# ./plasma.nix
|
||||
# ./firefox.nix
|
||||
];
|
||||
|
||||
# home.sessionPath = [
|
||||
# "/home/tao/.cargo/bin"
|
||||
# ];
|
||||
home.file.".cargo/config.toml".text = cargoConfig;
|
||||
home.file.".config/autostart" = {
|
||||
source = ./autostart;
|
||||
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.sessionPath = [
|
||||
# "/home/tao/.cargo/bin"
|
||||
# ];
|
||||
home.file.".cargo/config.toml".text = cargoConfig;
|
||||
home.file.".config/autostart" = {
|
||||
source = ./autostart;
|
||||
recursive = true;
|
||||
};
|
||||
home.file.".config/direnv/lib/".source = ./direnv;
|
||||
home.file.".config/direnv/lib/".recursive = true;
|
||||
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Tao Tien";
|
||||
email = "29749622+taotien@users.noreply.github.com";
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
};
|
||||
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 = {
|
||||
enable = true;
|
||||
userName = "Tao Tien";
|
||||
userEmail = "29749622+taotien@users.noreply.github.com";
|
||||
# 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";
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
"griffin" = {
|
||||
hostname = "griffin.cs.usfca.edu";
|
||||
user = "tltien";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
# proxyCommand = "ssh griffin.cs.usfca.edu";
|
||||
|
||||
jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
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";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Tao Tien";
|
||||
userEmail = "29749622+taotien@users.noreply.github.com";
|
||||
# extraConfig = {
|
||||
# };
|
||||
ignores = [
|
||||
"/target"
|
||||
".direnv"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
starship = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||
};
|
||||
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)))));
|
||||
};
|
||||
|
||||
# taskwarrior = {
|
||||
# enable = true;
|
||||
# package = pkgs.taskwarrior3;
|
||||
# dataLocation = "/home/tao/sync";
|
||||
# };
|
||||
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";
|
||||
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 = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./wezterm.lua;
|
||||
};
|
||||
starship = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||
};
|
||||
|
||||
zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
# taskwarrior = {
|
||||
# enable = true;
|
||||
# package = pkgs.taskwarrior3;
|
||||
# dataLocation = "/home/tao/sync";
|
||||
# };
|
||||
"pictures" = {
|
||||
path = "/home/tao/pictures";
|
||||
devices = devs;
|
||||
|
||||
wezterm = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./wezterm.lua;
|
||||
};
|
||||
"projects" = {
|
||||
path = "/home/tao/projects";
|
||||
devices = devs;
|
||||
|
||||
zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
};
|
||||
};
|
||||
"school" = {
|
||||
path = "/home/tao/school";
|
||||
devices = devs;
|
||||
|
||||
zellij = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
};
|
||||
"sync" = {
|
||||
path = "/home/tao/sync";
|
||||
devices = devs;
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
# "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;
|
||||
};
|
||||
services = {
|
||||
pueue = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
};
|
||||
};
|
||||
|
||||
home.username = "tao";
|
||||
home.homeDirectory = "/home/tao";
|
||||
home.stateVersion = "23.11";
|
||||
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;
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
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 = {
|
||||
rules = [
|
||||
# {
|
||||
# name = "arduino-cli";
|
||||
# target = "~/.arduino15";
|
||||
# rewrite = "~/.local/share/arduino/cli";
|
||||
# }
|
||||
# {
|
||||
# name = "arduino-cli";
|
||||
# target = "~/Arduino";
|
||||
# rewrite = "~/.local/share/arduino/ide";
|
||||
# }
|
||||
# {
|
||||
# name = "arduino-cli";
|
||||
# target = "~/.jssc";
|
||||
# rewrite = "~/.local/share/arduino/jssc";
|
||||
# }
|
||||
];
|
||||
enable = true;
|
||||
};
|
||||
programs.boxxy = {
|
||||
rules = [
|
||||
# {
|
||||
# name = "arduino-cli";
|
||||
# target = "~/.arduino15";
|
||||
# rewrite = "~/.local/share/arduino/cli";
|
||||
# }
|
||||
# {
|
||||
# name = "arduino-cli";
|
||||
# target = "~/Arduino";
|
||||
# rewrite = "~/.local/share/arduino/ide";
|
||||
# }
|
||||
# {
|
||||
# name = "arduino-cli";
|
||||
# target = "~/.jssc";
|
||||
# rewrite = "~/.local/share/arduino/jssc";
|
||||
# }
|
||||
];
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{...}: {
|
||||
programs.firefox = {
|
||||
# policies = {
|
||||
# };
|
||||
# enable = true;
|
||||
# profiles.default.settings = {
|
||||
# "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false;
|
||||
# "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||
# "browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
# "browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
# "extensions.pocket.enabled" = false;
|
||||
# };
|
||||
};
|
||||
programs.firefox = {
|
||||
# policies = {
|
||||
# };
|
||||
# enable = true;
|
||||
# profiles.default.settings = {
|
||||
# "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false;
|
||||
# "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||
# "browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
# "browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
# "extensions.pocket.enabled" = false;
|
||||
# };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,267 +1,267 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.helix = {
|
||||
settings = {
|
||||
theme = "gruvbox_dark_hard";
|
||||
editor = {
|
||||
end-of-line-diagnostics = "hint";
|
||||
inline-diagnostics = {
|
||||
cursor-line = "warning";
|
||||
};
|
||||
auto-save = {
|
||||
focus-lost = true;
|
||||
after-delay.enable = true;
|
||||
after-delay.timeout = 1000;
|
||||
};
|
||||
shell = ["nu" "--stdin" "-c"];
|
||||
# rainbow-brackets = true;
|
||||
line-number = "relative";
|
||||
cursorline = true;
|
||||
completion-replace = false;
|
||||
preview-completion-insert = false;
|
||||
indent-guides = {
|
||||
render = true;
|
||||
skip-levels = 2;
|
||||
};
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
statusline = {
|
||||
left = ["mode" "spinner" "spacer" "version-control"];
|
||||
center = ["file-name" "file-modification-indicator"];
|
||||
right = ["diagnostics" "primary-selection-length" "total-line-numbers" "selections" "position"];
|
||||
};
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
display-progress-messages = true;
|
||||
};
|
||||
soft-wrap.enable = true;
|
||||
smart-tab.supersede-menu = false;
|
||||
};
|
||||
keys.insert = {
|
||||
C-space = "completion";
|
||||
k = {k = "normal_mode";};
|
||||
};
|
||||
keys.normal = {
|
||||
k = "move_line_down";
|
||||
j = "move_line_up";
|
||||
};
|
||||
keys.select = {
|
||||
k = "extend_line_down";
|
||||
j = "extend_line_up";
|
||||
};
|
||||
keys.normal.space.w = {
|
||||
k = "jump_view_down";
|
||||
j = "jump_view_up";
|
||||
K = "swap_view_down";
|
||||
J = "swap_view_up";
|
||||
};
|
||||
keys.normal.space.t = {
|
||||
r = "@mip:reflow<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"
|
||||
];
|
||||
programs.helix = {
|
||||
settings = {
|
||||
theme = "gruvbox_dark_hard";
|
||||
editor = {
|
||||
end-of-line-diagnostics = "hint";
|
||||
inline-diagnostics = {
|
||||
cursor-line = "warning";
|
||||
};
|
||||
auto-save = {
|
||||
focus-lost = true;
|
||||
after-delay.enable = true;
|
||||
after-delay.timeout = 1000;
|
||||
};
|
||||
shell = ["nu" "--stdin" "-c"];
|
||||
# rainbow-brackets = true;
|
||||
line-number = "relative";
|
||||
cursorline = true;
|
||||
completion-replace = false;
|
||||
preview-completion-insert = false;
|
||||
indent-guides = {
|
||||
render = true;
|
||||
skip-levels = 2;
|
||||
};
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
statusline = {
|
||||
left = ["mode" "spinner" "spacer" "version-control"];
|
||||
center = ["file-name" "file-modification-indicator"];
|
||||
right = ["diagnostics" "primary-selection-length" "total-line-numbers" "selections" "position"];
|
||||
};
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
display-progress-messages = true;
|
||||
};
|
||||
soft-wrap.enable = true;
|
||||
smart-tab.supersede-menu = false;
|
||||
};
|
||||
keys.insert = {
|
||||
C-space = "completion";
|
||||
k = {k = "normal_mode";};
|
||||
};
|
||||
keys.normal = {
|
||||
k = "move_line_down";
|
||||
j = "move_line_up";
|
||||
};
|
||||
keys.select = {
|
||||
k = "extend_line_down";
|
||||
j = "extend_line_up";
|
||||
};
|
||||
keys.normal.space.w = {
|
||||
k = "jump_view_down";
|
||||
j = "jump_view_up";
|
||||
K = "swap_view_down";
|
||||
J = "swap_view_up";
|
||||
};
|
||||
keys.normal.space.t = {
|
||||
r = "@mip:reflow<ret>";
|
||||
s = "@|lines | sort | to text<ret>";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
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"];
|
||||
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"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
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 = {
|
||||
# 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";
|
||||
};
|
||||
}
|
||||
];
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
# package = inputs.helix.packages.${pkgs.system}.default;
|
||||
};
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
# package = inputs.helix.packages.${pkgs.system}.default;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,382 +1,382 @@
|
|||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
shortcuts = {
|
||||
"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 (Workman)" = [ ];
|
||||
"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";
|
||||
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
||||
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
||||
"kcm_touchpad"."Toggle Touchpad" = ["Meta+Shift+Space" "Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
||||
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
||||
"kmix"."decrease_volume" = "Volume Down";
|
||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
||||
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
||||
"kmix"."increase_volume" = "Volume Up";
|
||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
||||
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute"];
|
||||
"kmix"."mute" = "Volume Mute";
|
||||
"ksmserver"."Halt Without Confirmation" = [ ];
|
||||
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver"];
|
||||
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
||||
"ksmserver"."Log Out Without Confirmation" = [ ];
|
||||
"ksmserver"."Reboot" = [ ];
|
||||
"ksmserver"."Reboot Without Confirmation" = [ ];
|
||||
"ksmserver"."Shut Down" = [ ];
|
||||
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||
"kwin"."Cycle Overview" = [ ];
|
||||
"kwin"."Cycle Overview Opposite" = [ ];
|
||||
"kwin"."Decrease Opacity" = [ ];
|
||||
"kwin"."Edit Tiles" = "Meta+T";
|
||||
"kwin"."Expose" = "Ctrl+F9";
|
||||
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C)"];
|
||||
"kwin"."ExposeClass" = "Ctrl+F7";
|
||||
"kwin"."ExposeClassCurrentDesktop" = [ ];
|
||||
"kwin"."Grid View" = [ ];
|
||||
"kwin"."Increase Opacity" = [ ];
|
||||
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
||||
"kwin"."Move Tablet to Next Output" = [ ];
|
||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
||||
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
||||
"kwin"."MoveZoomDown" = [ ];
|
||||
"kwin"."MoveZoomLeft" = [ ];
|
||||
"kwin"."MoveZoomRight" = [ ];
|
||||
"kwin"."MoveZoomUp" = [ ];
|
||||
"kwin"."Overview" = [ ];
|
||||
"kwin"."Setup Window Shortcut" = [ ];
|
||||
"kwin"."Show Desktop" = "Meta+D";
|
||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
"kwin"."Switch Window Down" = "Meta+Down";
|
||||
"kwin"."Switch Window Left" = "Meta+Left";
|
||||
"kwin"."Switch Window Right" = "Meta+Right";
|
||||
"kwin"."Switch Window Up" = "Meta+Up";
|
||||
"kwin"."Switch to Desktop 1" = "Meta+5";
|
||||
"kwin"."Switch to Desktop 10" = [ ];
|
||||
"kwin"."Switch to Desktop 11" = [ ];
|
||||
"kwin"."Switch to Desktop 12" = [ ];
|
||||
"kwin"."Switch to Desktop 13" = [ ];
|
||||
"kwin"."Switch to Desktop 14" = [ ];
|
||||
"kwin"."Switch to Desktop 15" = [ ];
|
||||
"kwin"."Switch to Desktop 16" = [ ];
|
||||
"kwin"."Switch to Desktop 17" = [ ];
|
||||
"kwin"."Switch to Desktop 18" = [ ];
|
||||
"kwin"."Switch to Desktop 19" = [ ];
|
||||
"kwin"."Switch to Desktop 2" = "Meta+6";
|
||||
"kwin"."Switch to Desktop 20" = [ ];
|
||||
"kwin"."Switch to Desktop 3" = "Meta+7";
|
||||
"kwin"."Switch to Desktop 4" = "Meta+8";
|
||||
"kwin"."Switch to Desktop 5" = "Meta+9";
|
||||
"kwin"."Switch to Desktop 6" = "Meta+0";
|
||||
"kwin"."Switch to Desktop 7" = [ ];
|
||||
"kwin"."Switch to Desktop 8" = [ ];
|
||||
"kwin"."Switch to Desktop 9" = [ ];
|
||||
"kwin"."Switch to Next Desktop" = [ ];
|
||||
"kwin"."Switch to Next Screen" = [ ];
|
||||
"kwin"."Switch to Previous Desktop" = [ ];
|
||||
"kwin"."Switch to Previous Screen" = [ ];
|
||||
"kwin"."Switch to Screen 0" = [ ];
|
||||
"kwin"."Switch to Screen 1" = [ ];
|
||||
"kwin"."Switch to Screen 2" = [ ];
|
||||
"kwin"."Switch to Screen 3" = [ ];
|
||||
"kwin"."Switch to Screen 4" = [ ];
|
||||
"kwin"."Switch to Screen 5" = [ ];
|
||||
"kwin"."Switch to Screen 6" = [ ];
|
||||
"kwin"."Switch to Screen 7" = [ ];
|
||||
"kwin"."Switch to Screen Above" = [ ];
|
||||
"kwin"."Switch to Screen Below" = [ ];
|
||||
"kwin"."Switch to Screen to the Left" = [ ];
|
||||
"kwin"."Switch to Screen to the Right" = [ ];
|
||||
"kwin"."Toggle Night Color" = [ ];
|
||||
"kwin"."Toggle Window Raise/Lower" = [ ];
|
||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
"kwin"."Walk Through Windows Alternative" = [ ];
|
||||
"kwin"."Walk Through Windows Alternative (Reverse)" = [ ];
|
||||
"kwin"."Walk Through Windows of Current Application" = "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 (Reverse)" = [ ];
|
||||
"kwin"."Window Above Other Windows" = [ ];
|
||||
"kwin"."Window Below Other Windows" = [ ];
|
||||
"kwin"."Window Close" = ["Alt+F4" "Meta+W"];
|
||||
"kwin"."Window Fullscreen" = [ ];
|
||||
"kwin"."Window Grow Horizontal" = [ ];
|
||||
"kwin"."Window Grow Vertical" = [ ];
|
||||
"kwin"."Window Lower" = [ ];
|
||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||
"kwin"."Window Maximize Horizontal" = [ ];
|
||||
"kwin"."Window Maximize Vertical" = [ ];
|
||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||
"kwin"."Window Move" = [ ];
|
||||
"kwin"."Window Move Center" = [ ];
|
||||
"kwin"."Window No Border" = [ ];
|
||||
"kwin"."Window On All Desktops" = [ ];
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"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 Right" = "Meta+Ctrl+Shift+Right";
|
||||
"kwin"."Window One Screen Down" = [ ];
|
||||
"kwin"."Window One Screen Up" = [ ];
|
||||
"kwin"."Window One Screen to the Left" = [ ];
|
||||
"kwin"."Window One Screen to the Right" = [ ];
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Pack Down" = [ ];
|
||||
"kwin"."Window Pack Left" = [ ];
|
||||
"kwin"."Window Pack Right" = [ ];
|
||||
"kwin"."Window Pack Up" = [ ];
|
||||
"kwin"."Window Quick Tile Bottom" = [ ];
|
||||
"kwin"."Window Quick Tile Bottom Left" = [ ];
|
||||
"kwin"."Window Quick Tile Bottom Right" = [ ];
|
||||
"kwin"."Window Quick Tile Left" = [ ];
|
||||
"kwin"."Window Quick Tile Right" = [ ];
|
||||
"kwin"."Window Quick Tile Top" = [ ];
|
||||
"kwin"."Window Quick Tile Top Left" = [ ];
|
||||
"kwin"."Window Quick Tile Top Right" = [ ];
|
||||
"kwin"."Window Raise" = [ ];
|
||||
"kwin"."Window Resize" = [ ];
|
||||
"kwin"."Window Shade" = [ ];
|
||||
"kwin"."Window Shrink Horizontal" = [ ];
|
||||
"kwin"."Window Shrink Vertical" = [ ];
|
||||
"kwin"."Window to Desktop 1" = "Meta+%";
|
||||
"kwin"."Window to Desktop 10" = [ ];
|
||||
"kwin"."Window to Desktop 11" = [ ];
|
||||
"kwin"."Window to Desktop 12" = [ ];
|
||||
"kwin"."Window to Desktop 13" = [ ];
|
||||
"kwin"."Window to Desktop 14" = [ ];
|
||||
"kwin"."Window to Desktop 15" = [ ];
|
||||
"kwin"."Window to Desktop 16" = [ ];
|
||||
"kwin"."Window to Desktop 17" = [ ];
|
||||
"kwin"."Window to Desktop 18" = [ ];
|
||||
"kwin"."Window to Desktop 19" = [ ];
|
||||
"kwin"."Window to Desktop 2" = "Meta+^";
|
||||
"kwin"."Window to Desktop 20" = [ ];
|
||||
"kwin"."Window to Desktop 3" = "Meta+&";
|
||||
"kwin"."Window to Desktop 4" = "Meta+*";
|
||||
"kwin"."Window to Desktop 5" = "Meta+(";
|
||||
"kwin"."Window to Desktop 6" = "Meta+)";
|
||||
"kwin"."Window to Desktop 7" = [ ];
|
||||
"kwin"."Window to Desktop 8" = [ ];
|
||||
"kwin"."Window to Desktop 9" = [ ];
|
||||
"kwin"."Window to Next Desktop" = [ ];
|
||||
"kwin"."Window to Next Screen" = [ ];
|
||||
"kwin"."Window to Previous Desktop" = [ ];
|
||||
"kwin"."Window to Previous Screen" = [ ];
|
||||
"kwin"."Window to Screen 0" = [ ];
|
||||
"kwin"."Window to Screen 1" = [ ];
|
||||
"kwin"."Window to Screen 2" = [ ];
|
||||
"kwin"."Window to Screen 3" = [ ];
|
||||
"kwin"."Window to Screen 4" = [ ];
|
||||
"kwin"."Window to Screen 5" = [ ];
|
||||
"kwin"."Window to Screen 6" = [ ];
|
||||
"kwin"."Window to Screen 7" = [ ];
|
||||
"kwin"."view_actual_size" = [ ];
|
||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+="];
|
||||
"kwin"."view_zoom_out" = "Meta+-";
|
||||
"mediacontrol"."mediavolumedown" = [ ];
|
||||
"mediacontrol"."mediavolumeup" = [ ];
|
||||
"mediacontrol"."nextmedia" = "Media Next";
|
||||
"mediacontrol"."pausemedia" = "Media Pause";
|
||||
"mediacontrol"."playmedia" = [ ];
|
||||
"mediacontrol"."playpausemedia" = "Media Play";
|
||||
"mediacontrol"."previousmedia" = "Media Previous";
|
||||
"mediacontrol"."stopmedia" = "Media Stop";
|
||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard 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"."Hibernate" = "Hibernate";
|
||||
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard 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"."PowerDown" = "Power Down";
|
||||
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
||||
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B"];
|
||||
"plasmashell"."activate task manager entry 1" = "Meta+1";
|
||||
"plasmashell"."activate task manager entry 10" = [ ];
|
||||
"plasmashell"."activate task manager entry 2" = "Meta+2";
|
||||
"plasmashell"."activate task manager entry 3" = "Meta+3";
|
||||
"plasmashell"."activate task manager entry 4" = "Meta+4";
|
||||
"plasmashell"."activate task manager entry 5" = [ ];
|
||||
"plasmashell"."activate task manager entry 6" = [ ];
|
||||
"plasmashell"."activate task manager entry 7" = [ ];
|
||||
"plasmashell"."activate task manager entry 8" = [ ];
|
||||
"plasmashell"."activate task manager entry 9" = [ ];
|
||||
"plasmashell"."clear-history" = [ ];
|
||||
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
||||
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
||||
"plasmashell"."cycleNextAction" = [ ];
|
||||
"plasmashell"."cyclePrevAction" = [ ];
|
||||
"plasmashell"."manage activities" = "Meta+Q";
|
||||
"plasmashell"."next activity" = "Meta+A";
|
||||
"plasmashell"."previous activity" = "Meta+Shift+A";
|
||||
"plasmashell"."repeat_action" = [ ];
|
||||
"plasmashell"."show dashboard" = "Ctrl+F12";
|
||||
"plasmashell"."show-barcode" = [ ];
|
||||
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
||||
"plasmashell"."stop current activity" = "Meta+S";
|
||||
"plasmashell"."switch to next activity" = [ ];
|
||||
"plasmashell"."switch to previous activity" = [ ];
|
||||
"plasmashell"."toggle do not disturb" = [ ];
|
||||
"services/firefox.desktop"."_launch" = "Meta+F";
|
||||
"services/firefox.desktop"."new-private-window" = "Meta+Shift+F";
|
||||
"services/org.wezfurlong.wezterm.desktop"."_launch" = "Meta+Return";
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
shortcuts = {
|
||||
"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 (Workman)" = [];
|
||||
"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";
|
||||
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
|
||||
"kcm_touchpad"."Disable Touchpad" = "Touchpad Off";
|
||||
"kcm_touchpad"."Enable Touchpad" = "Touchpad On";
|
||||
"kcm_touchpad"."Toggle Touchpad" = ["Meta+Shift+Space" "Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
|
||||
"kmix"."decrease_microphone_volume" = "Microphone Volume Down";
|
||||
"kmix"."decrease_volume" = "Volume Down";
|
||||
"kmix"."decrease_volume_small" = "Shift+Volume Down";
|
||||
"kmix"."increase_microphone_volume" = "Microphone Volume Up";
|
||||
"kmix"."increase_volume" = "Volume Up";
|
||||
"kmix"."increase_volume_small" = "Shift+Volume Up";
|
||||
"kmix"."mic_mute" = ["Microphone Mute" "Meta+Volume Mute"];
|
||||
"kmix"."mute" = "Volume Mute";
|
||||
"ksmserver"."Halt Without Confirmation" = [];
|
||||
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver"];
|
||||
"ksmserver"."Log Out" = "Ctrl+Alt+Del";
|
||||
"ksmserver"."Log Out Without Confirmation" = [];
|
||||
"ksmserver"."Reboot" = [];
|
||||
"ksmserver"."Reboot Without Confirmation" = [];
|
||||
"ksmserver"."Shut Down" = [];
|
||||
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||
"kwin"."Cycle Overview" = [];
|
||||
"kwin"."Cycle Overview Opposite" = [];
|
||||
"kwin"."Decrease Opacity" = [];
|
||||
"kwin"."Edit Tiles" = "Meta+T";
|
||||
"kwin"."Expose" = "Ctrl+F9";
|
||||
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C)"];
|
||||
"kwin"."ExposeClass" = "Ctrl+F7";
|
||||
"kwin"."ExposeClassCurrentDesktop" = [];
|
||||
"kwin"."Grid View" = [];
|
||||
"kwin"."Increase Opacity" = [];
|
||||
"kwin"."Kill Window" = "Meta+Ctrl+Esc";
|
||||
"kwin"."Move Tablet to Next Output" = [];
|
||||
"kwin"."MoveMouseToCenter" = "Meta+F6";
|
||||
"kwin"."MoveMouseToFocus" = "Meta+F5";
|
||||
"kwin"."MoveZoomDown" = [];
|
||||
"kwin"."MoveZoomLeft" = [];
|
||||
"kwin"."MoveZoomRight" = [];
|
||||
"kwin"."MoveZoomUp" = [];
|
||||
"kwin"."Overview" = [];
|
||||
"kwin"."Setup Window Shortcut" = [];
|
||||
"kwin"."Show Desktop" = "Meta+D";
|
||||
"kwin"."Suspend Compositing" = "Alt+Shift+F12";
|
||||
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
|
||||
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
|
||||
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
|
||||
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
|
||||
"kwin"."Switch Window Down" = "Meta+Down";
|
||||
"kwin"."Switch Window Left" = "Meta+Left";
|
||||
"kwin"."Switch Window Right" = "Meta+Right";
|
||||
"kwin"."Switch Window Up" = "Meta+Up";
|
||||
"kwin"."Switch to Desktop 1" = "Meta+5";
|
||||
"kwin"."Switch to Desktop 10" = [];
|
||||
"kwin"."Switch to Desktop 11" = [];
|
||||
"kwin"."Switch to Desktop 12" = [];
|
||||
"kwin"."Switch to Desktop 13" = [];
|
||||
"kwin"."Switch to Desktop 14" = [];
|
||||
"kwin"."Switch to Desktop 15" = [];
|
||||
"kwin"."Switch to Desktop 16" = [];
|
||||
"kwin"."Switch to Desktop 17" = [];
|
||||
"kwin"."Switch to Desktop 18" = [];
|
||||
"kwin"."Switch to Desktop 19" = [];
|
||||
"kwin"."Switch to Desktop 2" = "Meta+6";
|
||||
"kwin"."Switch to Desktop 20" = [];
|
||||
"kwin"."Switch to Desktop 3" = "Meta+7";
|
||||
"kwin"."Switch to Desktop 4" = "Meta+8";
|
||||
"kwin"."Switch to Desktop 5" = "Meta+9";
|
||||
"kwin"."Switch to Desktop 6" = "Meta+0";
|
||||
"kwin"."Switch to Desktop 7" = [];
|
||||
"kwin"."Switch to Desktop 8" = [];
|
||||
"kwin"."Switch to Desktop 9" = [];
|
||||
"kwin"."Switch to Next Desktop" = [];
|
||||
"kwin"."Switch to Next Screen" = [];
|
||||
"kwin"."Switch to Previous Desktop" = [];
|
||||
"kwin"."Switch to Previous Screen" = [];
|
||||
"kwin"."Switch to Screen 0" = [];
|
||||
"kwin"."Switch to Screen 1" = [];
|
||||
"kwin"."Switch to Screen 2" = [];
|
||||
"kwin"."Switch to Screen 3" = [];
|
||||
"kwin"."Switch to Screen 4" = [];
|
||||
"kwin"."Switch to Screen 5" = [];
|
||||
"kwin"."Switch to Screen 6" = [];
|
||||
"kwin"."Switch to Screen 7" = [];
|
||||
"kwin"."Switch to Screen Above" = [];
|
||||
"kwin"."Switch to Screen Below" = [];
|
||||
"kwin"."Switch to Screen to the Left" = [];
|
||||
"kwin"."Switch to Screen to the Right" = [];
|
||||
"kwin"."Toggle Night Color" = [];
|
||||
"kwin"."Toggle Window Raise/Lower" = [];
|
||||
"kwin"."Walk Through Windows" = "Alt+Tab";
|
||||
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||
"kwin"."Walk Through Windows Alternative" = [];
|
||||
"kwin"."Walk Through Windows Alternative (Reverse)" = [];
|
||||
"kwin"."Walk Through Windows of Current Application" = "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 (Reverse)" = [];
|
||||
"kwin"."Window Above Other Windows" = [];
|
||||
"kwin"."Window Below Other Windows" = [];
|
||||
"kwin"."Window Close" = ["Alt+F4" "Meta+W"];
|
||||
"kwin"."Window Fullscreen" = [];
|
||||
"kwin"."Window Grow Horizontal" = [];
|
||||
"kwin"."Window Grow Vertical" = [];
|
||||
"kwin"."Window Lower" = [];
|
||||
"kwin"."Window Maximize" = "Meta+PgUp";
|
||||
"kwin"."Window Maximize Horizontal" = [];
|
||||
"kwin"."Window Maximize Vertical" = [];
|
||||
"kwin"."Window Minimize" = "Meta+PgDown";
|
||||
"kwin"."Window Move" = [];
|
||||
"kwin"."Window Move Center" = [];
|
||||
"kwin"."Window No Border" = [];
|
||||
"kwin"."Window On All Desktops" = [];
|
||||
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
|
||||
"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 Right" = "Meta+Ctrl+Shift+Right";
|
||||
"kwin"."Window One Screen Down" = [];
|
||||
"kwin"."Window One Screen Up" = [];
|
||||
"kwin"."Window One Screen to the Left" = [];
|
||||
"kwin"."Window One Screen to the Right" = [];
|
||||
"kwin"."Window Operations Menu" = "Alt+F3";
|
||||
"kwin"."Window Pack Down" = [];
|
||||
"kwin"."Window Pack Left" = [];
|
||||
"kwin"."Window Pack Right" = [];
|
||||
"kwin"."Window Pack Up" = [];
|
||||
"kwin"."Window Quick Tile Bottom" = [];
|
||||
"kwin"."Window Quick Tile Bottom Left" = [];
|
||||
"kwin"."Window Quick Tile Bottom Right" = [];
|
||||
"kwin"."Window Quick Tile Left" = [];
|
||||
"kwin"."Window Quick Tile Right" = [];
|
||||
"kwin"."Window Quick Tile Top" = [];
|
||||
"kwin"."Window Quick Tile Top Left" = [];
|
||||
"kwin"."Window Quick Tile Top Right" = [];
|
||||
"kwin"."Window Raise" = [];
|
||||
"kwin"."Window Resize" = [];
|
||||
"kwin"."Window Shade" = [];
|
||||
"kwin"."Window Shrink Horizontal" = [];
|
||||
"kwin"."Window Shrink Vertical" = [];
|
||||
"kwin"."Window to Desktop 1" = "Meta+%";
|
||||
"kwin"."Window to Desktop 10" = [];
|
||||
"kwin"."Window to Desktop 11" = [];
|
||||
"kwin"."Window to Desktop 12" = [];
|
||||
"kwin"."Window to Desktop 13" = [];
|
||||
"kwin"."Window to Desktop 14" = [];
|
||||
"kwin"."Window to Desktop 15" = [];
|
||||
"kwin"."Window to Desktop 16" = [];
|
||||
"kwin"."Window to Desktop 17" = [];
|
||||
"kwin"."Window to Desktop 18" = [];
|
||||
"kwin"."Window to Desktop 19" = [];
|
||||
"kwin"."Window to Desktop 2" = "Meta+^";
|
||||
"kwin"."Window to Desktop 20" = [];
|
||||
"kwin"."Window to Desktop 3" = "Meta+&";
|
||||
"kwin"."Window to Desktop 4" = "Meta+*";
|
||||
"kwin"."Window to Desktop 5" = "Meta+(";
|
||||
"kwin"."Window to Desktop 6" = "Meta+)";
|
||||
"kwin"."Window to Desktop 7" = [];
|
||||
"kwin"."Window to Desktop 8" = [];
|
||||
"kwin"."Window to Desktop 9" = [];
|
||||
"kwin"."Window to Next Desktop" = [];
|
||||
"kwin"."Window to Next Screen" = [];
|
||||
"kwin"."Window to Previous Desktop" = [];
|
||||
"kwin"."Window to Previous Screen" = [];
|
||||
"kwin"."Window to Screen 0" = [];
|
||||
"kwin"."Window to Screen 1" = [];
|
||||
"kwin"."Window to Screen 2" = [];
|
||||
"kwin"."Window to Screen 3" = [];
|
||||
"kwin"."Window to Screen 4" = [];
|
||||
"kwin"."Window to Screen 5" = [];
|
||||
"kwin"."Window to Screen 6" = [];
|
||||
"kwin"."Window to Screen 7" = [];
|
||||
"kwin"."view_actual_size" = [];
|
||||
"kwin"."view_zoom_in" = ["Meta++" "Meta+="];
|
||||
"kwin"."view_zoom_out" = "Meta+-";
|
||||
"mediacontrol"."mediavolumedown" = [];
|
||||
"mediacontrol"."mediavolumeup" = [];
|
||||
"mediacontrol"."nextmedia" = "Media Next";
|
||||
"mediacontrol"."pausemedia" = "Media Pause";
|
||||
"mediacontrol"."playmedia" = [];
|
||||
"mediacontrol"."playpausemedia" = "Media Play";
|
||||
"mediacontrol"."previousmedia" = "Media Previous";
|
||||
"mediacontrol"."stopmedia" = "Media Stop";
|
||||
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard 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"."Hibernate" = "Hibernate";
|
||||
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard 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"."PowerDown" = "Power Down";
|
||||
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||
"org_kde_powerdevil"."Turn Off Screen" = [];
|
||||
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B"];
|
||||
"plasmashell"."activate task manager entry 1" = "Meta+1";
|
||||
"plasmashell"."activate task manager entry 10" = [];
|
||||
"plasmashell"."activate task manager entry 2" = "Meta+2";
|
||||
"plasmashell"."activate task manager entry 3" = "Meta+3";
|
||||
"plasmashell"."activate task manager entry 4" = "Meta+4";
|
||||
"plasmashell"."activate task manager entry 5" = [];
|
||||
"plasmashell"."activate task manager entry 6" = [];
|
||||
"plasmashell"."activate task manager entry 7" = [];
|
||||
"plasmashell"."activate task manager entry 8" = [];
|
||||
"plasmashell"."activate task manager entry 9" = [];
|
||||
"plasmashell"."clear-history" = [];
|
||||
"plasmashell"."clipboard_action" = "Meta+Ctrl+X";
|
||||
"plasmashell"."cycle-panels" = "Meta+Alt+P";
|
||||
"plasmashell"."cycleNextAction" = [];
|
||||
"plasmashell"."cyclePrevAction" = [];
|
||||
"plasmashell"."manage activities" = "Meta+Q";
|
||||
"plasmashell"."next activity" = "Meta+A";
|
||||
"plasmashell"."previous activity" = "Meta+Shift+A";
|
||||
"plasmashell"."repeat_action" = [];
|
||||
"plasmashell"."show dashboard" = "Ctrl+F12";
|
||||
"plasmashell"."show-barcode" = [];
|
||||
"plasmashell"."show-on-mouse-pos" = "Meta+V";
|
||||
"plasmashell"."stop current activity" = "Meta+S";
|
||||
"plasmashell"."switch to next activity" = [];
|
||||
"plasmashell"."switch to previous activity" = [];
|
||||
"plasmashell"."toggle do not disturb" = [];
|
||||
"services/firefox.desktop"."_launch" = "Meta+F";
|
||||
"services/firefox.desktop"."new-private-window" = "Meta+Shift+F";
|
||||
"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; [
|
||||
oculante
|
||||
rnote
|
||||
audacity
|
||||
cosmic-store
|
||||
jellyfin-media-player
|
||||
keepassxc
|
||||
onlyoffice-bin
|
||||
signal-desktop
|
||||
snapper
|
||||
syncthingtray
|
||||
yt-dlp
|
||||
zoom-us
|
||||
toastify
|
||||
];
|
||||
programs.kdeconnect.enable = true;
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
users.users.vy.packages = with pkgs; [
|
||||
oculante
|
||||
rnote
|
||||
audacity
|
||||
cosmic-store
|
||||
jellyfin-media-player
|
||||
keepassxc
|
||||
onlyoffice-bin
|
||||
signal-desktop
|
||||
snapper
|
||||
syncthingtray
|
||||
yt-dlp
|
||||
zoom-us
|
||||
toastify
|
||||
];
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-color-emoji
|
||||
];
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-color-emoji
|
||||
];
|
||||
|
||||
services.flatpak.enable = true;
|
||||
services.flatpak.enable = true;
|
||||
|
||||
services.snapper.configs = {
|
||||
home = {
|
||||
SUBVOLUME = "/home";
|
||||
ALLOW_USERS = ["vy"];
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_LIMIT_HOURLY = 5;
|
||||
TIMELINE_LIMIT_DAILY = 7;
|
||||
services.snapper.configs = {
|
||||
home = {
|
||||
SUBVOLUME = "/home";
|
||||
ALLOW_USERS = ["vy"];
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_LIMIT_HOURLY = 5;
|
||||
TIMELINE_LIMIT_DAILY = 7;
|
||||
};
|
||||
};
|
||||
};
|
||||
services.snapper.snapshotInterval = "*:0/5";
|
||||
services.snapper.snapshotInterval = "*:0/5";
|
||||
|
||||
users.users.vy = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "audio" "video"];
|
||||
shell = pkgs.nushell;
|
||||
};
|
||||
users.users.vy = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "audio" "video"];
|
||||
shell = pkgs.nushell;
|
||||
};
|
||||
|
||||
users.users.root.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKLOGhoTauV+yBide0qYQzZ/0rRw7ImfrOTvuZxjIFl"
|
||||
];
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.verbose = true;
|
||||
home-manager.backupFileExtension = ".hm-bak";
|
||||
home-manager.users.vy = import ./vy/HOME.nix {inherit inputs pkgs lib config;};
|
||||
users.users.root.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKLOGhoTauV+yBide0qYQzZ/0rRw7ImfrOTvuZxjIFl"
|
||||
];
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.verbose = true;
|
||||
home-manager.backupFileExtension = ".hm-bak";
|
||||
home-manager.users.vy = import ./vy/HOME.nix {inherit inputs pkgs lib config;};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,116 +1,116 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
programs = {
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
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 = {
|
||||
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)))));
|
||||
};
|
||||
# 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;
|
||||
# # };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
# 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";
|
||||
home.username = "vy";
|
||||
home.homeDirectory = "/home/vy";
|
||||
home.stateVersion = "23.11";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue