proper amount of tabs

This commit is contained in:
Tao Tien 2025-04-30 19:29:00 -07:00
parent 92abf91263
commit 349da643c6
27 changed files with 2591 additions and 2584 deletions

1
alejandra.toml Normal file
View file

@ -0,0 +1 @@
indentation = "FourSpaces"

View file

@ -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"];
};
};
};
};
};
};
};
};
};
};
};
};
}

View file

@ -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
];
}

View file

@ -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"];
}

View file

@ -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"];
# };
}

View file

@ -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;

View file

@ -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";
}

View file

@ -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];
}

View file

@ -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
]))
];
}

View file

@ -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
View file

@ -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";
})
];
};
};
};
};
}

View file

@ -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;
}

View file

@ -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";
}

View file

@ -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";
}

View file

@ -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";
}

View file

@ -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";
}

View file

@ -1,3 +1,3 @@
{lib, ...}: {
nixpkgs.hostPlatform = "riscv64";
nixpkgs.hostPlatform = "riscv64";
}

View file

@ -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";
}

View file

@ -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 = "/";
};
};
};
};
};
};
}

View file

@ -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;};
}

View file

@ -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";
}

View file

@ -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;
};
}

View file

@ -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;
# };
};
}

View file

@ -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;
};
}

View file

@ -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;
};
};
}

View file

@ -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;};
}

View file

@ -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";
}