From 349da643c626ed5b0ec49b8dfe911cfd686d42fa Mon Sep 17 00:00:00 2001 From: Tao Tien <29749622+taotien@users.noreply.github.com> Date: Wed, 30 Apr 2025 19:29:00 -0700 Subject: [PATCH] proper amount of tabs --- alejandra.toml | 1 + extras/NOserver-disk-config.nix | 62 +-- extras/cosmic.nix | 20 +- extras/dev.nix | 212 ++++----- extras/folding.nix | 24 +- extras/gaming.nix | 2 +- extras/minecraft-server.nix | 28 +- extras/snapper.nix | 692 ++++++++++++++--------------- extras/ssrov-laptop.nix | 88 ++-- extras/uwuraid.nix | 120 ++--- flake.nix | 348 +++++++-------- secrets/secrets.nix | 20 +- systems/BASED.nix | 364 +++++++-------- systems/NOcomputer.nix | 170 +++---- systems/NOlaptop.nix | 184 ++++---- systems/NOmom.nix | 196 ++++----- systems/NOriscv.nix | 2 +- systems/NOserver.nix | 136 +++--- systems/disk-config.nix | 84 ++-- users/tao.nix | 296 ++++++------- users/tao/HOME.nix | 468 ++++++++++---------- users/tao/boxxy.nix | 40 +- users/tao/firefox.nix | 24 +- users/tao/helix.nix | 520 +++++++++++----------- users/tao/plasma.nix | 758 ++++++++++++++++---------------- users/vy.nix | 98 +++-- users/vy/HOME.nix | 218 ++++----- 27 files changed, 2591 insertions(+), 2584 deletions(-) create mode 100644 alejandra.toml diff --git a/alejandra.toml b/alejandra.toml new file mode 100644 index 0000000..636aa80 --- /dev/null +++ b/alejandra.toml @@ -0,0 +1 @@ +indentation = "FourSpaces" diff --git a/extras/NOserver-disk-config.nix b/extras/NOserver-disk-config.nix index 300be8a..eed218b 100644 --- a/extras/NOserver-disk-config.nix +++ b/extras/NOserver-disk-config.nix @@ -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"]; + }; + }; + }; + }; }; - }; }; - }; }; - }; }; - }; } diff --git a/extras/cosmic.nix b/extras/cosmic.nix index 799cafb..f4b07b5 100644 --- a/extras/cosmic.nix +++ b/extras/cosmic.nix @@ -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 + ]; } diff --git a/extras/dev.nix b/extras/dev.nix index 58306f5..d60e5d1 100644 --- a/extras/dev.nix +++ b/extras/dev.nix @@ -1,118 +1,118 @@ {pkgs, ...}: { - # services.globalprotect = { - # enable = true; - # settings = { - # "vpn1.usfca.edu" = { - # openconnect-args = ""; - # }; - # }; - # }; + # services.globalprotect = { + # enable = true; + # settings = { + # "vpn1.usfca.edu" = { + # openconnect-args = ""; + # }; + # }; + # }; - environment.systemPackages = with pkgs; [ - # (llm.withPlugins (ps: with ps; [llm-openrouter])) - # bash-language-server - # digital - # etcher - # fontforge - # freecad - # llm - # lychee # link checker - # quickemu - # radicle-node - # vulkan-loader - # act - # aichat - # aider-chat - # asm-lsp - b3sum - devenv - direnv - gh - # git-cliff - hyperfine - jujutsu - just - lldb - # lua-language-server - # markdown-oxide # markdown lsp - qFlipper - qemu - sd - sshfs - taplo # toml lsp - tio - tokei # repo code stats - typos + environment.systemPackages = with pkgs; [ + # (llm.withPlugins (ps: with ps; [llm-openrouter])) + # bash-language-server + # digital + # etcher + # fontforge + # freecad + # llm + # lychee # link checker + # quickemu + # radicle-node + # vulkan-loader + # act + # aichat + # aider-chat + # asm-lsp + b3sum + devenv + direnv + gh + # git-cliff + hyperfine + jujutsu + just + lldb + # lua-language-server + # markdown-oxide # markdown lsp + qFlipper + qemu + sd + sshfs + taplo # toml lsp + tio + tokei # repo code stats + typos - # # databases - # sqlite - # sqls - # sqlx-cli - # sea-orm-cli - # rainfrog + # # databases + # sqlite + # sqls + # sqlx-cli + # sea-orm-cli + # rainfrog - # # arduino - # arduino-language-server - # arduino-cli - # pkgsCross.avr.buildPackages.gcc - # avrdude - # ravedude + # # arduino + # arduino-language-server + # arduino-cli + # pkgsCross.avr.buildPackages.gcc + # avrdude + # ravedude - # c - clang - clang-tools - gcc - gdb - gnumake + # c + clang + clang-tools + gcc + gdb + gnumake - # nix - nil - alejandra + # nix + nil + alejandra - # python - # pypy3 - python3 - # (python3.withPackages (ps: - # with ps; [ - # llm - # # llm-openrouter - # ])) - # python310Packages.python-lsp-server - uv - ruff + # python + # pypy3 + python3 + # (python3.withPackages (ps: + # with ps; [ + # llm + # # llm-openrouter + # ])) + # python310Packages.python-lsp-server + uv + ruff - # rust - cargo-binstall - bacon - cargo-expand - cargo-feature - cargo-generate - cargo-watch - elf2uf2-rs - flip-link - mdbook - mold-wrapped - probe-rs - rustup - sccache - trunk - wasm-bindgen-cli - ]; + # rust + cargo-binstall + bacon + cargo-expand + cargo-feature + cargo-generate + cargo-watch + elf2uf2-rs + flip-link + mdbook + mold-wrapped + probe-rs + rustup + sccache + trunk + wasm-bindgen-cli + ]; - hardware.flipperzero.enable = true; + hardware.flipperzero.enable = true; - services.udev.extraRules = '' - SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb" - SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg" - ''; + services.udev.extraRules = '' + SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb" + SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg" + ''; - # virtualisation.docker = { - # enable = true; - # storageDriver = "btrfs"; - # }; - # virtualisation.docker.rootless = { - # enable = true; - # setSocketVariable = true; - # }; - # users.extraGroups.docker.members = ["tao"]; + # virtualisation.docker = { + # enable = true; + # storageDriver = "btrfs"; + # }; + # virtualisation.docker.rootless = { + # enable = true; + # setSocketVariable = true; + # }; + # users.extraGroups.docker.members = ["tao"]; } diff --git a/extras/folding.nix b/extras/folding.nix index 5154df6..59ac99b 100644 --- a/extras/folding.nix +++ b/extras/folding.nix @@ -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"]; + # }; } diff --git a/extras/gaming.nix b/extras/gaming.nix index c49f759..2c69b34 100644 --- a/extras/gaming.nix +++ b/extras/gaming.nix @@ -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; diff --git a/extras/minecraft-server.nix b/extras/minecraft-server.nix index e3c5e01..e3bb562 100644 --- a/extras/minecraft-server.nix +++ b/extras/minecraft-server.nix @@ -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"; } diff --git a/extras/snapper.nix b/extras/snapper.nix index d0127aa..1b648e1 100644 --- a/extras/snapper.nix +++ b/extras/snapper.nix @@ -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]; } diff --git a/extras/ssrov-laptop.nix b/extras/ssrov-laptop.nix index d0f7460..69e1902 100644 --- a/extras/ssrov-laptop.nix +++ b/extras/ssrov-laptop.nix @@ -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 + ])) + ]; } diff --git a/extras/uwuraid.nix b/extras/uwuraid.nix index 9b9d2a1..dab372d 100644 --- a/extras/uwuraid.nix +++ b/extras/uwuraid.nix @@ -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";}) + ]; } diff --git a/flake.nix b/flake.nix index 9554457..6ba13d8 100644 --- a/flake.nix +++ b/flake.nix @@ -1,182 +1,182 @@ { - description = "we say NO to shitty OSes"; + description = "we say NO to shitty OSes"; - inputs = { - nixos.url = "nixpkgs/nixos-24.05"; - nixpkgs.url = "nixpkgs/nixos-unstable"; - nixos-facter-modules.url = "github:numtide/nixos-facter-modules"; - nixos-hardware.url = "nixos-hardware/master"; - determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1"; - agenix = { - url = "github:ryantm/agenix"; - inputs.darwin.follows = ""; + inputs = { + nixos.url = "nixpkgs/nixos-24.05"; + nixpkgs.url = "nixpkgs/nixos-unstable"; + nixos-facter-modules.url = "github:numtide/nixos-facter-modules"; + nixos-hardware.url = "nixos-hardware/master"; + determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1"; + agenix = { + url = "github:ryantm/agenix"; + inputs.darwin.follows = ""; + }; + disko = { + url = "github:nix-community/disko"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # helix = { + # url = "github:mattwparas/helix/steel-event-system"; + # inputs.nixpkgs.follows = "nixpkgs"; + # }; + # nixos-cosmic = { + # url = "github:lilyinstarlight/nixos-cosmic"; + # inputs.nixpkgs.follows = "nixpkgs"; + # }; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - disko = { - url = "github:nix-community/disko"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # helix = { - # url = "github:mattwparas/helix/steel-event-system"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; - # nixos-cosmic = { - # url = "github:lilyinstarlight/nixos-cosmic"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; - zen-browser = { - url = "github:0xc000022070/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - nixConfig = { - extra-substituters = [ - # "https://cosmic.cachix.org/" - # "https://helix.cachix.org/" - "https://devenv.cachix.org" - ]; - extra-trusted-public-keys = [ - # "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" - # "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" - "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" - ]; - }; + nixConfig = { + extra-substituters = [ + # "https://cosmic.cachix.org/" + # "https://helix.cachix.org/" + "https://devenv.cachix.org" + ]; + extra-trusted-public-keys = [ + # "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" + # "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" + "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" + ]; + }; - outputs = { - nixos, - self, - nixpkgs, - nixos-facter-modules, - nixos-hardware, - determinate, - agenix, - disko, - home-manager, - # nixos-cosmic, - zen-browser, - ... - } @ inputs: { - nixosConfigurations = { - NOcomputer = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = {inherit inputs;}; - modules = [ - disko.nixosModules.disko - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-cpu-amd-pstate - nixos-hardware.nixosModules.common-gpu-nvidia-nonprime - # nixos-hardware.common.gpu.nvidia.ampere - agenix.nixosModules.default - home-manager.nixosModules.home-manager - ./systems/BASED.nix - ./systems/NOcomputer.nix - ./users/tao.nix - ./extras/uwuraid.nix - ./extras/dev.nix - ./extras/gaming.nix - ./extras/folding.nix - # nixos-cosmic.nixosModules.default - ./extras/cosmic.nix - ]; - }; - NOlaptop = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = {inherit inputs;}; - modules = [ - disko.nixosModules.disko - ./systems/disk-config.nix - nixos-hardware.nixosModules.framework-16-7040-amd - # nixos-facter-modules.nixosModules.facter - # { - # config.facter.reportPath = - # if builtins.pathExists ./systems/NOlaptop-facter.json - # then ./systems/NOlaptop-facter.json - # else throw "Have you forgotten to run nixos-anywhere with `--generate-hardware-config nixos-facter ./facter.json`?"; - # } - agenix.nixosModules.default - determinate.nixosModules.default - home-manager.nixosModules.home-manager - ./systems/BASED.nix - ./systems/NOlaptop.nix - ./users/tao.nix - ./extras/uwuraid.nix - ./extras/dev.nix - ./extras/gaming.nix - # nixos-cosmic.nixosModules.default - ./extras/cosmic.nix - ]; - }; - NOmom = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = {inherit inputs;}; - modules = [ - nixos-hardware.nixosModules.common-cpu-intel - # inputs.nixos-hardware.nixosModules.framework-12th-gen-intel - agenix.nixosModules.default - home-manager.nixosModules.home-manager - ./systems/BASED.nix - ./systems/NOmom.nix - ./users/tao.nix - ./users/vy.nix - ./extras/uwuraid.nix - ]; - }; - NOserver-minecraft = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = {inherit inputs;}; - modules = [ - agenix.nixosModules.default - disko.nixosModules.disko - {disko.devices.disk.disk1.device = "/dev/vda";} - ./systems/NOserver.nix - ./extras/NOserver-disk-config.nix - ./extras/minecraft-server.nix - ]; - }; - bcachefs-iso = nixos.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - # "${nixos}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix" - "${nixos}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix" - ({ - lib, - pkgs, - ... - }: { - nixpkgs.config = { - allowUnfree = true; + outputs = { + nixos, + self, + nixpkgs, + nixos-facter-modules, + nixos-hardware, + determinate, + agenix, + disko, + home-manager, + # nixos-cosmic, + zen-browser, + ... + } @ inputs: { + nixosConfigurations = { + NOcomputer = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + disko.nixosModules.disko + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-cpu-amd-pstate + nixos-hardware.nixosModules.common-gpu-nvidia-nonprime + # nixos-hardware.common.gpu.nvidia.ampere + agenix.nixosModules.default + home-manager.nixosModules.home-manager + ./systems/BASED.nix + ./systems/NOcomputer.nix + ./users/tao.nix + ./extras/uwuraid.nix + ./extras/dev.nix + ./extras/gaming.nix + ./extras/folding.nix + # nixos-cosmic.nixosModules.default + ./extras/cosmic.nix + ]; }; - environment.systemPackages = with pkgs; [ - helix - bat - bottom - dumbpipe - sendme - git - firefox - ouch - pueue - ripgrep - # rustdesk - skim - tree - wezterm - wget - zstd - # bcachefs-tools - ]; - # boot.supportedFilesystems = ["bcachefs"]; - boot.supportedFilesystems.btrfs = true; - boot.supportedFilesystems.zfs = lib.mkForce false; - boot.kernelPackages = pkgs.linuxPackages_latest; - isoImage.squashfsCompression = "zstd"; - }) - ]; - }; + NOlaptop = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + disko.nixosModules.disko + ./systems/disk-config.nix + nixos-hardware.nixosModules.framework-16-7040-amd + # nixos-facter-modules.nixosModules.facter + # { + # config.facter.reportPath = + # if builtins.pathExists ./systems/NOlaptop-facter.json + # then ./systems/NOlaptop-facter.json + # else throw "Have you forgotten to run nixos-anywhere with `--generate-hardware-config nixos-facter ./facter.json`?"; + # } + agenix.nixosModules.default + determinate.nixosModules.default + home-manager.nixosModules.home-manager + ./systems/BASED.nix + ./systems/NOlaptop.nix + ./users/tao.nix + ./extras/uwuraid.nix + ./extras/dev.nix + ./extras/gaming.nix + # nixos-cosmic.nixosModules.default + ./extras/cosmic.nix + ]; + }; + NOmom = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + nixos-hardware.nixosModules.common-cpu-intel + # inputs.nixos-hardware.nixosModules.framework-12th-gen-intel + agenix.nixosModules.default + home-manager.nixosModules.home-manager + ./systems/BASED.nix + ./systems/NOmom.nix + ./users/tao.nix + ./users/vy.nix + ./extras/uwuraid.nix + ]; + }; + NOserver-minecraft = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + agenix.nixosModules.default + disko.nixosModules.disko + {disko.devices.disk.disk1.device = "/dev/vda";} + ./systems/NOserver.nix + ./extras/NOserver-disk-config.nix + ./extras/minecraft-server.nix + ]; + }; + bcachefs-iso = nixos.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + # "${nixos}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix" + "${nixos}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix" + ({ + lib, + pkgs, + ... + }: { + nixpkgs.config = { + allowUnfree = true; + }; + environment.systemPackages = with pkgs; [ + helix + bat + bottom + dumbpipe + sendme + git + firefox + ouch + pueue + ripgrep + # rustdesk + skim + tree + wezterm + wget + zstd + # bcachefs-tools + ]; + # boot.supportedFilesystems = ["bcachefs"]; + boot.supportedFilesystems.btrfs = true; + boot.supportedFilesystems.zfs = lib.mkForce false; + boot.kernelPackages = pkgs.linuxPackages_latest; + isoImage.squashfsCompression = "zstd"; + }) + ]; + }; + }; }; - }; } diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 9c2b2da..cb4a12e 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -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; } diff --git a/systems/BASED.nix b/systems/BASED.nix index ab5ab8d..3e02bb8 100644 --- a/systems/BASED.nix +++ b/systems/BASED.nix @@ -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"; } diff --git a/systems/NOcomputer.nix b/systems/NOcomputer.nix index c0c4bee..cf2a0d1 100644 --- a/systems/NOcomputer.nix +++ b/systems/NOcomputer.nix @@ -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"; } diff --git a/systems/NOlaptop.nix b/systems/NOlaptop.nix index 509ad64..8dd9dea 100644 --- a/systems/NOlaptop.nix +++ b/systems/NOlaptop.nix @@ -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"; } diff --git a/systems/NOmom.nix b/systems/NOmom.nix index b2d4949..f99c01b 100644 --- a/systems/NOmom.nix +++ b/systems/NOmom.nix @@ -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"; } diff --git a/systems/NOriscv.nix b/systems/NOriscv.nix index 85e0679..9728de7 100644 --- a/systems/NOriscv.nix +++ b/systems/NOriscv.nix @@ -1,3 +1,3 @@ {lib, ...}: { - nixpkgs.hostPlatform = "riscv64"; + nixpkgs.hostPlatform = "riscv64"; } diff --git a/systems/NOserver.nix b/systems/NOserver.nix index a63cbb0..bc30ed1 100644 --- a/systems/NOserver.nix +++ b/systems/NOserver.nix @@ -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"; } diff --git a/systems/disk-config.nix b/systems/disk-config.nix index 7d0d35e..d543dca 100644 --- a/systems/disk-config.nix +++ b/systems/disk-config.nix @@ -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 = "/"; - }; - }; }; - }; }; - }; } diff --git a/users/tao.nix b/users/tao.nix index 4992b54..b687606 100644 --- a/users/tao.nix +++ b/users/tao.nix @@ -1,162 +1,162 @@ { - inputs, - config, - pkgs, - lib, - ... + inputs, + config, + pkgs, + lib, + ... }: { - users.users.tao.packages = with pkgs; [ - # boxxy - calibre - # carapace - # cloud-hypervisor - # davinci-resolve - # fractal - # freerdp - # inputs.plasma-manager.packages.${pkgs.system}.default - # jellyfin-mpv-shim - # libsForQt5.kcharselect - # mendeley - # piper - # slack - # tectonic - # texlab - # thunderbird - # wkhtmltopdf - appimage-run - aspell - aspellDicts.en - bottles - darktable - deluge - discord - freecad-wayland - gocryptfs - gurk-rs - jellyfin-media-player - # kdePackages.plasma-vault - keepassxc - # leetcode-cli - man-pages - man-pages-posix - miniserve - mousai - nix-output-monitor - nixos-anywhere - nufmt - nushell - nvd - obs-studio - oculante - onlyoffice-bin - pandoc - pipe-rename - prusa-slicer - qmk - qmk-udev-rules - qmk_hid - ripgrep-all - signal-desktop - slack - snapper - starship - syncthingtray - taskwarrior3 - tinymist - toastify - typst - usbutils - vial - wezterm - wl-clipboard-rs - yt-dlp - zathura - zellij - zoom-us - zoxide - ]; - programs.adb.enable = true; - programs.kdeconnect.enable = true; - environment.shells = with pkgs; [nushell]; + users.users.tao.packages = with pkgs; [ + # boxxy + calibre + # carapace + # cloud-hypervisor + # davinci-resolve + # fractal + # freerdp + # inputs.plasma-manager.packages.${pkgs.system}.default + # jellyfin-mpv-shim + # libsForQt5.kcharselect + # mendeley + # piper + # slack + # tectonic + # texlab + # thunderbird + # wkhtmltopdf + appimage-run + aspell + aspellDicts.en + bottles + darktable + deluge + discord + freecad-wayland + gocryptfs + gurk-rs + jellyfin-media-player + # kdePackages.plasma-vault + keepassxc + # leetcode-cli + man-pages + man-pages-posix + miniserve + mousai + nix-output-monitor + nixos-anywhere + nufmt + nushell + nvd + obs-studio + oculante + onlyoffice-bin + pandoc + pipe-rename + prusa-slicer + qmk + qmk-udev-rules + qmk_hid + ripgrep-all + signal-desktop + slack + snapper + starship + syncthingtray + taskwarrior3 + tinymist + toastify + typst + usbutils + vial + wezterm + wl-clipboard-rs + yt-dlp + zathura + zellij + zoom-us + zoxide + ]; + programs.adb.enable = true; + programs.kdeconnect.enable = true; + environment.shells = with pkgs; [nushell]; - # virtualisation.libvirtd.enable = true; - # virtualisation.libvirtd.qemu.swtpm.enable = true; - # virtualisation.spiceUSBRedirection.enable = true; - # programs.virt-manager.enable = true; + # virtualisation.libvirtd.enable = true; + # virtualisation.libvirtd.qemu.swtpm.enable = true; + # virtualisation.spiceUSBRedirection.enable = true; + # programs.virt-manager.enable = true; - # virtualisation.virtualbox.host = { - # enable = true; - # enableExtensionPack = true; - # }; + # virtualisation.virtualbox.host = { + # enable = true; + # enableExtensionPack = true; + # }; - # nixpkgs.overlays = [ - # (final: prev: { - # options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: { - # configOptions.FSTYPE = lib.mkOption { - # type = lib.types.enum ["btrfs" "bcachefs"]; - # }; - # }); - # }) - # ]; + # nixpkgs.overlays = [ + # (final: prev: { + # options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: { + # configOptions.FSTYPE = lib.mkOption { + # type = lib.types.enum ["btrfs" "bcachefs"]; + # }; + # }); + # }) + # ]; - disabledModules = ["services/misc/snapper.nix"]; - imports = [../extras/snapper.nix]; - services.snapper.configs = { - home = { - SUBVOLUME = "/home"; - # FSTYPE = "bcachefs"; - FSTYPE = - if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname) - then "bcachefs" - else "btrfs"; - ALLOW_USERS = ["tao"]; - TIMELINE_CREATE = true; - TIMELINE_CLEANUP = true; - TIMELINE_LIMIT_HOURLY = 5; - TIMELINE_LIMIT_DAILY = 7; + disabledModules = ["services/misc/snapper.nix"]; + imports = [../extras/snapper.nix]; + services.snapper.configs = { + home = { + SUBVOLUME = "/home"; + # FSTYPE = "bcachefs"; + FSTYPE = + if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname) + then "bcachefs" + else "btrfs"; + ALLOW_USERS = ["tao"]; + TIMELINE_CREATE = true; + TIMELINE_CLEANUP = true; + TIMELINE_LIMIT_HOURLY = 5; + TIMELINE_LIMIT_DAILY = 7; + }; }; - }; - services.snapper.snapshotInterval = "*:0/5"; + services.snapper.snapshotInterval = "*:0/5"; - hardware.keyboard.qmk.enable = true; - services.udev.extraRules = '' - KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" - ''; - # services.ratbagd.enable = true; + hardware.keyboard.qmk.enable = true; + services.udev.extraRules = '' + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" + ''; + # services.ratbagd.enable = true; - boot.extraModulePackages = with config.boot.kernelPackages; [ - v4l2loopback - ]; - boot.extraModprobeConfig = '' - options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 - ''; + boot.extraModulePackages = with config.boot.kernelPackages; [ + v4l2loopback + ]; + boot.extraModprobeConfig = '' + options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 + ''; - fonts.packages = with pkgs; [ - # (nerdfonts.override {fonts = ["FiraCode"];}) - nerd-fonts.fira-code - noto-fonts-cjk-sans - noto-fonts-cjk-serif - noto-fonts-color-emoji - ibm-plex - cooper-hewitt - ]; + fonts.packages = with pkgs; [ + # (nerdfonts.override {fonts = ["FiraCode"];}) + nerd-fonts.fira-code + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-color-emoji + ibm-plex + cooper-hewitt + ]; - documentation.enable = true; + documentation.enable = true; - # age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age; - users.users.tao = { - isNormalUser = true; - # hashedPasswordFile = config.age.secrets.password-tao.path; - extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"]; - shell = pkgs.nushell; - }; + # age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age; + users.users.tao = { + isNormalUser = true; + # hashedPasswordFile = config.age.secrets.password-tao.path; + extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"]; + shell = pkgs.nushell; + }; - age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age; - age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age; - age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.verbose = true; - home-manager.backupFileExtension = ".hm-bak"; - home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;}; + age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age; + age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age; + age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.verbose = true; + home-manager.backupFileExtension = ".hm-bak"; + home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;}; } diff --git a/users/tao/HOME.nix b/users/tao/HOME.nix index 937c0b5..c236f50 100644 --- a/users/tao/HOME.nix +++ b/users/tao/HOME.nix @@ -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"; } diff --git a/users/tao/boxxy.nix b/users/tao/boxxy.nix index 58b45ce..28ebce7 100644 --- a/users/tao/boxxy.nix +++ b/users/tao/boxxy.nix @@ -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; + }; } diff --git a/users/tao/firefox.nix b/users/tao/firefox.nix index 88f59e5..5b22c2a 100644 --- a/users/tao/firefox.nix +++ b/users/tao/firefox.nix @@ -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; + # }; + }; } diff --git a/users/tao/helix.nix b/users/tao/helix.nix index 6531601..3a0c129 100644 --- a/users/tao/helix.nix +++ b/users/tao/helix.nix @@ -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"; - s = "@|lines | sort | to text"; - }; - }; - 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"; + s = "@|lines | sort | to text"; }; - }; }; - }; - 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; - }; } diff --git a/users/tao/plasma.nix b/users/tao/plasma.nix index ca5e983..3836ced 100644 --- a/users/tao/plasma.nix +++ b/users/tao/plasma.nix @@ -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; - }; - }; } diff --git a/users/vy.nix b/users/vy.nix index 379de21..7a8f32b 100644 --- a/users/vy.nix +++ b/users/vy.nix @@ -1,53 +1,59 @@ -{pkgs, lib, inputs, config, ...}: { - users.users.vy.packages = with pkgs; [ - oculante - rnote - audacity - cosmic-store - jellyfin-media-player - keepassxc - onlyoffice-bin - signal-desktop - snapper - syncthingtray - yt-dlp - zoom-us - toastify - ]; - programs.kdeconnect.enable = true; +{ + pkgs, + lib, + inputs, + config, + ... +}: { + users.users.vy.packages = with pkgs; [ + oculante + rnote + audacity + cosmic-store + jellyfin-media-player + keepassxc + onlyoffice-bin + signal-desktop + snapper + syncthingtray + yt-dlp + zoom-us + toastify + ]; + programs.kdeconnect.enable = true; - fonts.packages = with pkgs; [ - noto-fonts-cjk-sans - noto-fonts-cjk-serif - noto-fonts-color-emoji - ]; + fonts.packages = with pkgs; [ + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-color-emoji + ]; - services.flatpak.enable = true; + services.flatpak.enable = true; - services.snapper.configs = { - home = { - SUBVOLUME = "/home"; - ALLOW_USERS = ["vy"]; - TIMELINE_CREATE = true; - TIMELINE_CLEANUP = true; - TIMELINE_LIMIT_HOURLY = 5; - TIMELINE_LIMIT_DAILY = 7; + services.snapper.configs = { + home = { + SUBVOLUME = "/home"; + ALLOW_USERS = ["vy"]; + TIMELINE_CREATE = true; + TIMELINE_CLEANUP = true; + TIMELINE_LIMIT_HOURLY = 5; + TIMELINE_LIMIT_DAILY = 7; + }; }; - }; - services.snapper.snapshotInterval = "*:0/5"; + services.snapper.snapshotInterval = "*:0/5"; - users.users.vy = { - isNormalUser = true; - extraGroups = ["wheel" "audio" "video"]; - shell = pkgs.nushell; - }; + users.users.vy = { + isNormalUser = true; + extraGroups = ["wheel" "audio" "video"]; + shell = pkgs.nushell; + }; - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKLOGhoTauV+yBide0qYQzZ/0rRw7ImfrOTvuZxjIFl" - ]; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.verbose = true; - home-manager.backupFileExtension = ".hm-bak"; - home-manager.users.vy = import ./vy/HOME.nix {inherit inputs pkgs lib config;}; + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJKLOGhoTauV+yBide0qYQzZ/0rRw7ImfrOTvuZxjIFl" + ]; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.verbose = true; + home-manager.backupFileExtension = ".hm-bak"; + home-manager.users.vy = import ./vy/HOME.nix {inherit inputs pkgs lib config;}; } diff --git a/users/vy/HOME.nix b/users/vy/HOME.nix index 06917ca..65997e3 100644 --- a/users/vy/HOME.nix +++ b/users/vy/HOME.nix @@ -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"; }