Initial commit
This commit is contained in:
2
.directory
Normal file
2
.directory
Normal file
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
Icon=nix-snowflake
|
||||
7
.envrc
Normal file
7
.envrc
Normal file
@@ -0,0 +1,7 @@
|
||||
export DIRENV_WARN_TIMEOUT=20s
|
||||
|
||||
eval "$(devenv direnvrc)"
|
||||
|
||||
# The use_devenv function supports passing flags to the devenv command
|
||||
# For example: use devenv --impure --option services.postgres.enable:bool true
|
||||
use devenv
|
||||
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Devenv
|
||||
.devenv*
|
||||
devenv.local.nix
|
||||
|
||||
# direnv
|
||||
.direnv
|
||||
|
||||
# pre-commit
|
||||
.pre-commit-config.yaml
|
||||
103
devenv.lock
Normal file
103
devenv.lock
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"nodes": {
|
||||
"devenv": {
|
||||
"locked": {
|
||||
"dir": "src/modules",
|
||||
"lastModified": 1755355634,
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "85e78cbe26467a2c23c9d34869235740132d749f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"dir": "src/modules",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754416808,
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1754299112,
|
||||
"owner": "cachix",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"rev": "16c21c9f5c6fb978466e91182a248dd8ca1112ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "rolling",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pre-commit-hooks": [
|
||||
"git-hooks"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
42
devenv.nix
Normal file
42
devenv.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
packages = [
|
||||
pkgs.git
|
||||
pkgs.nil
|
||||
pkgs.nixfmt-rfc-style
|
||||
];
|
||||
|
||||
languages.nix.enable = true;
|
||||
|
||||
enterShell = ''
|
||||
git --version
|
||||
nil --version
|
||||
'';
|
||||
|
||||
# https://devenv.sh/tasks/
|
||||
tasks = {
|
||||
"nixos:dry-build".exec = "nixos-rebuild dry-build --flake .";
|
||||
"nixos:build".exec = "nixos-rebuild build --flake .";
|
||||
"nixos:switch" = {
|
||||
exec = "sudo nixos-rebuild switch --flake .";
|
||||
status = "nixos:dry-build";
|
||||
};
|
||||
};
|
||||
|
||||
# https://devenv.sh/tests/
|
||||
enterTest = ''
|
||||
echo "Running tests"
|
||||
git --version | grep --color=auto "${pkgs.git.version}"
|
||||
'';
|
||||
|
||||
git-hooks.hooks = {
|
||||
nil.enable = true;
|
||||
nixfmt-rfc-style.enable = true;
|
||||
};
|
||||
|
||||
# See full reference at https://devenv.sh/reference/options/
|
||||
}
|
||||
15
devenv.yaml
Normal file
15
devenv.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json
|
||||
inputs:
|
||||
nixpkgs:
|
||||
url: github:cachix/devenv-nixpkgs/rolling
|
||||
|
||||
# If you're using non-OSS software, you can set allowUnfree to true.
|
||||
# allowUnfree: true
|
||||
|
||||
# If you're willing to use a package that's vulnerable
|
||||
# permittedInsecurePackages:
|
||||
# - "openssl-1.1.1w"
|
||||
|
||||
# If you have more than one devenv you can merge them
|
||||
#imports:
|
||||
# - ./backend
|
||||
86
flake.lock
generated
Normal file
86
flake.lock
generated
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756579987,
|
||||
"narHash": "sha256-duCce8zGsaMsrqqOmLOsuaV1PVIw/vXWnKuLKZClsGg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "99a69bdf8a3c6bf038c4121e9c4b6e99706a187a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1756542300,
|
||||
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1756469547,
|
||||
"narHash": "sha256-YvtD2E7MYsQ3r7K9K2G7nCslCKMPShoSEAtbjHLtH0k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "41d292bfc37309790f70f4c120b79280ce40af16",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"photocatalog": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736278979,
|
||||
"narHash": "sha256-xjwN0gY3SZQHvxxLgOAbL0wOquc5r6DeZVJjjpLKPFU=",
|
||||
"owner": "derfenix",
|
||||
"repo": "photocatalog",
|
||||
"rev": "e66070383f71a0d62aa143b10cf9c8ddded79607",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "derfenix",
|
||||
"repo": "photocatalog",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"photocatalog": "photocatalog"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
116
flake.nix
Normal file
116
flake.nix
Normal file
@@ -0,0 +1,116 @@
|
||||
{
|
||||
description = "Fxnet system configurations";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
photocatalog = {
|
||||
url = "github:derfenix/photocatalog";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# disko = {
|
||||
# url = "github:nix-community/disko/latest";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-stable,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
lib = nixpkgs.lib;
|
||||
|
||||
timeZone = "Europe/Moscow";
|
||||
stateVersion = "25.05";
|
||||
|
||||
hmModules = builtins.map (name: ./modules/hm + "/${name}") (
|
||||
builtins.attrNames (builtins.readDir ./modules/hm)
|
||||
);
|
||||
sysModules = builtins.map (name: ./modules/sys + "/${name}") (
|
||||
builtins.attrNames (builtins.readDir ./modules/sys)
|
||||
);
|
||||
pkgsSettings = (
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
}
|
||||
);
|
||||
pkgsStableSettings =
|
||||
system:
|
||||
import nixpkgs-stable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
|
||||
hosts = import ./hosts.nix;
|
||||
hostNames = builtins.attrNames hosts;
|
||||
|
||||
commonModules = [
|
||||
(
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
system.stateVersion = stateVersion;
|
||||
time.timeZone = lib.mkDefault timeZone;
|
||||
home-manager = {
|
||||
backupFileExtension = ".bak";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
sharedModules = hmModules ++ [
|
||||
(
|
||||
{ osConfig, ... }:
|
||||
{
|
||||
home.stateVersion = osConfig.system.stateVersion;
|
||||
}
|
||||
)
|
||||
];
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
pkgsStable = pkgsStableSettings pkgs.system;
|
||||
hosts = hosts;
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.photocatalog.nixosModules.photocatalog
|
||||
./options.nix
|
||||
./nix.nix
|
||||
]
|
||||
++ sysModules;
|
||||
in
|
||||
{
|
||||
nixosConfigurations = lib.genAttrs hostNames (
|
||||
name:
|
||||
let
|
||||
host = hosts.${name};
|
||||
in
|
||||
if host ? system then
|
||||
inputs.nixpkgs.lib.nixosSystem {
|
||||
system = host.system;
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
pkgsStable = pkgsStableSettings host.system;
|
||||
hosts = hosts;
|
||||
ip = host.ip;
|
||||
};
|
||||
pkgs = pkgsSettings host.system;
|
||||
modules = commonModules ++ [
|
||||
./hosts/${name}
|
||||
./hosts/${name}/hardware-configuration.nix
|
||||
./roles/${host.role}.nix
|
||||
];
|
||||
}
|
||||
else
|
||||
{ }
|
||||
);
|
||||
};
|
||||
}
|
||||
29
hosts.nix
Normal file
29
hosts.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
fenixpc = {
|
||||
system = "x86_64-linux";
|
||||
role = "desktop";
|
||||
ip = "192.168.1.2";
|
||||
syncthing = "33GCONH-UYG4IA4-BQ4DW6V-3YANY6J-52G6M5X-B72NCPX-7I5GWX6-5BALDQI";
|
||||
};
|
||||
fenixbook = {
|
||||
system = "x86_64-linux";
|
||||
role = "laptop";
|
||||
ip = "192.168.1.22";
|
||||
syncthing = "6GUGJLB-UOILU3A-XF537IN-PKLWU7T-COHWKU4-AX3MBPU-V7VUTUY-DG4VFAW";
|
||||
};
|
||||
nas = {
|
||||
system = "aarch64-linux";
|
||||
role = "nas";
|
||||
ip = "192.168.1.5";
|
||||
syncthing = "JE6KQD6-U4BMVXU-NXXHD3A-XY2UEZU-JA6WWZB-K2JBBXI-UJ5WYXU-3VBHEQI";
|
||||
};
|
||||
srv0 = {
|
||||
system = "aarch64-linux";
|
||||
role = "server";
|
||||
ip = "192.168.1.6";
|
||||
};
|
||||
s25 = {
|
||||
ip = "192.168.1.23";
|
||||
syncthing = "AX7VPTI-JPUDQIT-MWTKTFW-ZDCRAH3-ZBYKLRO-BBMBIV4-VBHFL7H-Z4FY3QP";
|
||||
};
|
||||
}
|
||||
99
hosts/fenixbook/default.nix
Normal file
99
hosts/fenixbook/default.nix
Normal file
@@ -0,0 +1,99 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
users = [
|
||||
"fenix"
|
||||
];
|
||||
in
|
||||
{
|
||||
imports = (
|
||||
import ../../quirks {
|
||||
quirks = [
|
||||
"development"
|
||||
"steam"
|
||||
"32bit"
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
home-manager = {
|
||||
users = lib.genAttrs users (user: import ./${user}.nix);
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "fenixbook";
|
||||
|
||||
networkmanager = {
|
||||
plugins =
|
||||
with pkgs;
|
||||
lib.mkForce [
|
||||
networkmanager-openvpn
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.oomd.extraConfig.DefaultMemoryPressureLimit = "15%";
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
microcode-intel
|
||||
openvpn
|
||||
];
|
||||
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users = lib.genAttrs users (user: {
|
||||
shell = pkgs.zsh;
|
||||
createHome = true;
|
||||
isNormalUser = true;
|
||||
initialPassword = "password";
|
||||
group = "fenix";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"ssh"
|
||||
"docker"
|
||||
"video"
|
||||
"pipewire"
|
||||
"wheel"
|
||||
];
|
||||
});
|
||||
|
||||
groups = {
|
||||
i2c = {
|
||||
members = users;
|
||||
};
|
||||
}
|
||||
// lib.genAttrs users (user: {
|
||||
members = [
|
||||
user
|
||||
];
|
||||
|
||||
gid = config.users.users.${user}.uid;
|
||||
});
|
||||
};
|
||||
|
||||
virtualisation.vmVariant = {
|
||||
virtualisation = {
|
||||
memorySize = 16096;
|
||||
cores = 8;
|
||||
};
|
||||
};
|
||||
|
||||
security.pam = {
|
||||
services = lib.genAttrs users (user: {
|
||||
gnupg.enable = true;
|
||||
kwallet.enable = true;
|
||||
});
|
||||
};
|
||||
}
|
||||
58
hosts/fenixbook/fenix.nix
Normal file
58
hosts/fenixbook/fenix.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
userName = "fenix";
|
||||
in
|
||||
{
|
||||
|
||||
pt.enable = true;
|
||||
|
||||
home = {
|
||||
username = userName;
|
||||
homeDirectory = lib.mkForce "/home/${userName}";
|
||||
packages = with pkgs; [
|
||||
# Games
|
||||
prismlauncher
|
||||
(bottles.override { removeWarningPopup = true; })
|
||||
|
||||
#Development
|
||||
devenv
|
||||
direnv
|
||||
yaml-language-server
|
||||
plantuml
|
||||
jetbrains.goland
|
||||
gnumake
|
||||
protobuf
|
||||
];
|
||||
};
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
git.enable = true;
|
||||
vscode.enable = true;
|
||||
gpg.enable = true;
|
||||
neovim.enable = true;
|
||||
|
||||
vivaldi = {
|
||||
enable = true;
|
||||
};
|
||||
direnv = {
|
||||
enableZshIntegration = config.programs.zsh.enable;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
settings.folders.Documents.enabled = true;
|
||||
settings.folders.Music.enabled = true;
|
||||
settings.folders.Obsidian.enabled = true;
|
||||
settings.folders."Camera S25".enabled = true;
|
||||
settings.folders.books.enabled = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
89
hosts/fenixbook/hardware-configuration.nix
Normal file
89
hosts/fenixbook/hardware-configuration.nix
Normal file
@@ -0,0 +1,89 @@
|
||||
{ ... }:
|
||||
{
|
||||
swappiness = 10;
|
||||
|
||||
boot = {
|
||||
resumeDevice = "/dev/disk/by-uuid/56ad966f-3268-4b59-999a-48a082bb8052";
|
||||
|
||||
initrd = {
|
||||
verbose = true;
|
||||
systemd = {
|
||||
emergencyAccess = "$y$j9T$yu1NICt8J9IFQ3wmgViop1$8rCHUrMNN2dCQeSt8f4h73Wrw5oUKoojuhetYyV7yN";
|
||||
enable = true;
|
||||
};
|
||||
|
||||
luks.devices.cryptedroot.device = "/dev/disk/by-partlabel/disk-main-luks";
|
||||
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"nvme"
|
||||
"thunderbolt"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"rtsx_pci_sdmmc"
|
||||
];
|
||||
|
||||
kernelModules = [
|
||||
"kvm-intel"
|
||||
];
|
||||
};
|
||||
|
||||
kernelModules = [
|
||||
"kvm-intel"
|
||||
"i2c-dev"
|
||||
];
|
||||
|
||||
kernelParams = [
|
||||
"usbcore.autosuspend=-1"
|
||||
"quiet"
|
||||
"modeset"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/71AB-29E0";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/57df3204-a8c7-4842-957c-9752f996bc0f";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"subvol=/root"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/57df3204-a8c7-4842-957c-9752f996bc0f";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"subvol=/home"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/nix" = {
|
||||
device = "/dev/disk/by-uuid/57df3204-a8c7-4842-957c-9752f996bc0f";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"subvol=/nix"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/dev/disk/by-uuid/56ad966f-3268-4b59-999a-48a082bb8052";
|
||||
priority = 100;
|
||||
}
|
||||
];
|
||||
|
||||
}
|
||||
109
hosts/fenixpc/default.nix
Normal file
109
hosts/fenixpc/default.nix
Normal file
@@ -0,0 +1,109 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
pkgsStable,
|
||||
...
|
||||
}:
|
||||
let
|
||||
users = [
|
||||
"fenix"
|
||||
];
|
||||
in
|
||||
{
|
||||
imports = (
|
||||
import ../../quirks {
|
||||
quirks = [
|
||||
"development"
|
||||
"steam"
|
||||
"32bit"
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
home-manager = {
|
||||
users = lib.genAttrs users (user: import ./${user}.nix);
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "fenixpc";
|
||||
|
||||
networkmanager = {
|
||||
plugins =
|
||||
with pkgs;
|
||||
lib.mkForce [
|
||||
networkmanager-openvpn
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.oomd.extraConfig.DefaultMemoryPressureLimit = "15%";
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
printing.ricoh.enable = true;
|
||||
calibre-web = {
|
||||
enable = true;
|
||||
listen.port = 8091;
|
||||
listen.ip = "0.0.0.0";
|
||||
package = pkgsStable.calibre-web;
|
||||
options = {
|
||||
enableBookUploading = true;
|
||||
enableBookConversion = true;
|
||||
};
|
||||
user = "fenix";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
microcode-amd
|
||||
openvpn
|
||||
];
|
||||
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users = lib.genAttrs users (user: {
|
||||
shell = pkgs.zsh;
|
||||
createHome = true;
|
||||
isNormalUser = true;
|
||||
initialPassword = "password";
|
||||
group = "fenix";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"ssh"
|
||||
"docker"
|
||||
"video"
|
||||
"pipewire"
|
||||
"wheel"
|
||||
];
|
||||
});
|
||||
groups = {
|
||||
i2c = {
|
||||
members = users;
|
||||
};
|
||||
}
|
||||
// lib.genAttrs users (user: {
|
||||
members = [
|
||||
user
|
||||
];
|
||||
gid = config.users.users.${user}.uid;
|
||||
});
|
||||
};
|
||||
|
||||
virtualisation.vmVariant = {
|
||||
virtualisation = {
|
||||
memorySize = 16096;
|
||||
cores = 8;
|
||||
};
|
||||
};
|
||||
|
||||
security.pam = {
|
||||
services = lib.genAttrs users (user: {
|
||||
gnupg.enable = true;
|
||||
kwallet.enable = true;
|
||||
});
|
||||
};
|
||||
}
|
||||
62
hosts/fenixpc/fenix.nix
Normal file
62
hosts/fenixpc/fenix.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
userName = "fenix";
|
||||
in
|
||||
{
|
||||
|
||||
pt.enable = true;
|
||||
|
||||
home = {
|
||||
username = userName;
|
||||
homeDirectory = lib.mkForce "/home/${userName}";
|
||||
packages = with pkgs; [
|
||||
# Games
|
||||
steam
|
||||
prismlauncher
|
||||
(bottles.override { removeWarningPopup = true; })
|
||||
warzone2100
|
||||
sauerbraten
|
||||
|
||||
#Development
|
||||
devenv
|
||||
direnv
|
||||
yaml-language-server
|
||||
plantuml
|
||||
jetbrains.goland
|
||||
gnumake
|
||||
protobuf
|
||||
];
|
||||
};
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
git.enable = true;
|
||||
vscode.enable = true;
|
||||
gpg.enable = true;
|
||||
neovim.enable = true;
|
||||
|
||||
vivaldi = {
|
||||
enable = true;
|
||||
};
|
||||
direnv = {
|
||||
enableZshIntegration = config.programs.zsh.enable;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
settings.folders.Documents.enabled = true;
|
||||
settings.folders.Music.enabled = true;
|
||||
settings.folders.Obsidian.enabled = true;
|
||||
settings.folders."Camera S25".enabled = true;
|
||||
settings.folders.PhotoArchive.enabled = true;
|
||||
settings.folders.books.enabled = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
153
hosts/fenixpc/hardware-configuration.nix
Normal file
153
hosts/fenixpc/hardware-configuration.nix
Normal file
@@ -0,0 +1,153 @@
|
||||
{ ... }:
|
||||
{
|
||||
swappiness = 10;
|
||||
|
||||
boot = {
|
||||
binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
resumeDevice = "/dev/disk/by-uuid/56ad966f-3268-4b59-999a-48a082bb8052";
|
||||
|
||||
initrd = {
|
||||
verbose = true;
|
||||
systemd = {
|
||||
emergencyAccess = "$y$j9T$yu1NICt8J9IFQ3wmgViop1$8rCHUrMNN2dCQeSt8f4h73Wrw5oUKoojuhetYyV7yN";
|
||||
enable = true;
|
||||
};
|
||||
|
||||
availableKernelModules = [
|
||||
"thunderbolt"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
];
|
||||
|
||||
kernelModules = [
|
||||
"kvm-amd"
|
||||
"amdgpu"
|
||||
];
|
||||
};
|
||||
|
||||
kernelModules = [
|
||||
"kvm-amd"
|
||||
"amdgpu"
|
||||
"i2c-dev"
|
||||
];
|
||||
|
||||
kernelParams = [
|
||||
"usbcore.autosuspend=-1"
|
||||
"quiet"
|
||||
"modeset"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/71AB-29E0";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/57df3204-a8c7-4842-957c-9752f996bc0f";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"subvol=/root"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/57df3204-a8c7-4842-957c-9752f996bc0f";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"subvol=/home"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/nix" = {
|
||||
device = "/dev/disk/by-uuid/57df3204-a8c7-4842-957c-9752f996bc0f";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"subvol=/nix"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/mnt/steamapps" = {
|
||||
device = "LABEL=garage";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=steam"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home/fenix/Downloads" = {
|
||||
device = "LABEL=hddstorage";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=downloads"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home/fenix/Photos" = {
|
||||
device = "LABEL=hddstorage";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=photo"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home/fenix/Music" = {
|
||||
device = "LABEL=hddstorage";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=music"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/mnt/hdd" = {
|
||||
device = "LABEL=hddstorage";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
"/home/fenix/Videos" = {
|
||||
device = "nas.fxnet:/mnt/raid/video";
|
||||
fsType = "nfs";
|
||||
options = [
|
||||
"rw"
|
||||
"soft"
|
||||
"noauto"
|
||||
"_netdev"
|
||||
"x-systemd.automount"
|
||||
];
|
||||
};
|
||||
"/mnt/nas/torrents" = {
|
||||
device = "nas.fxnet:/mnt/raid/torrents";
|
||||
fsType = "nfs";
|
||||
options = [
|
||||
"rw"
|
||||
"soft"
|
||||
"noauto"
|
||||
"_netdev"
|
||||
"x-systemd.automount"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/dev/disk/by-uuid/56ad966f-3268-4b59-999a-48a082bb8052";
|
||||
priority = 100;
|
||||
}
|
||||
];
|
||||
|
||||
}
|
||||
16
modules/hm/docker.nix
Normal file
16
modules/hm/docker.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
osConfig,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.file = lib.mkIf (osConfig.networking.hostName != "fenixpc") {
|
||||
fenixpcDockerContext = {
|
||||
enable = true;
|
||||
target = ".docker/contexts/meta/02db303260eb60b1d5cf88ef7f50e894d1573f2beafe3551def02353d6982a0c/meta.json";
|
||||
text = ''
|
||||
{"Name":"fenixpc","Metadata":{},"Endpoints":{"docker":{"Host":"tcp://192.168.1.2:2375","SkipTLSVerify":true}}}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
38
modules/hm/git.nix
Normal file
38
modules/hm/git.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs = {
|
||||
git = {
|
||||
userName = lib.mkDefault "derfenix";
|
||||
userEmail = lib.mkDefault "derfenix@gmail.com";
|
||||
|
||||
extraConfig = {
|
||||
core = {
|
||||
hookspath = "/home/fenix/.git_settings/hooks";
|
||||
};
|
||||
|
||||
url = {
|
||||
"git@git.derfenix.pro:" = {
|
||||
insteadOf = "https://git.derfenix.pro";
|
||||
};
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "master";
|
||||
};
|
||||
protocol = {
|
||||
"git" = {
|
||||
allow = "always";
|
||||
};
|
||||
};
|
||||
extensions = {
|
||||
objectFormat = "sha256";
|
||||
};
|
||||
};
|
||||
|
||||
signing = {
|
||||
format = "openpgp";
|
||||
signByDefault = lib.mkDefault true;
|
||||
key = lib.mkDefault "DD89337AFABD013FDD57A0F133445FB510D677DF";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
33
modules/hm/gpg.nix
Normal file
33
modules/hm/gpg.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
gpg = {
|
||||
mutableKeys = false;
|
||||
mutableTrust = false;
|
||||
publicKeys = [
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
gpg-agent = {
|
||||
enable = config.programs.gpg.enable;
|
||||
enableFishIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
enableSshSupport = true;
|
||||
enableScDaemon = true;
|
||||
# pinentryPackage = pkgs.pinentry-qt;
|
||||
extraConfig = lib.mkIf osConfig.services.desktopManager.plasma6.enable ''
|
||||
pinentry-program ${pkgs.kwalletcli}/bin/pinentry-kwallet
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
41
modules/hm/neovim.nix
Normal file
41
modules/hm/neovim.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.neovim = {
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
coc = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
universal-ctags
|
||||
];
|
||||
extraConfig = ''
|
||||
set number relativenumber
|
||||
set list
|
||||
set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
|
||||
set ts=2
|
||||
set softtabstop=2
|
||||
set shiftwidth=2
|
||||
set smarttab
|
||||
set smartindent
|
||||
set autoindent
|
||||
colorscheme zaibatsu
|
||||
'';
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-nix
|
||||
nerdtree
|
||||
neogit
|
||||
mru
|
||||
tagbar
|
||||
];
|
||||
};
|
||||
}
|
||||
77
modules/hm/pt.nix
Normal file
77
modules/hm/pt.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
devFolder = "~/dev/PT";
|
||||
conf = config.pt;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
pt = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf conf.enable {
|
||||
home.packages = with pkgs; [
|
||||
mattermost-desktop
|
||||
];
|
||||
|
||||
programs = {
|
||||
git = {
|
||||
extraConfig = {
|
||||
url = {
|
||||
"git@gitlab.ptsecurity.com:" = {
|
||||
insteadOf = "https://gitlab.ptsecurity.com";
|
||||
};
|
||||
};
|
||||
};
|
||||
includes = [
|
||||
{
|
||||
condition = "gitdir:${devFolder}";
|
||||
contents = {
|
||||
user = {
|
||||
name = "Sergey Kostyuchenko";
|
||||
email = "skostyuchenko@ptsecurity.com";
|
||||
signingkey = "0x0574DBAF";
|
||||
};
|
||||
commit = {
|
||||
gpgsign = true;
|
||||
};
|
||||
gpg = {
|
||||
format = "x509";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.file.ptDevStIgnore = {
|
||||
enable = true;
|
||||
target = lib.removePrefix "~/" (devFolder + "/.stignore");
|
||||
text = ''
|
||||
**/.devenv/
|
||||
**/.direnv/
|
||||
'';
|
||||
};
|
||||
|
||||
services.syncthing.settings = {
|
||||
folders = {
|
||||
"PTDev" = {
|
||||
id = "pt-dev";
|
||||
type = "sendreceive";
|
||||
enabled = true;
|
||||
label = "PTDev";
|
||||
path = devFolder;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
73
modules/hm/ssh.nix
Normal file
73
modules/hm/ssh.nix
Normal file
@@ -0,0 +1,73 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
ssh = {
|
||||
matchBlocks = {
|
||||
"router" = {
|
||||
user = "admin";
|
||||
hostname = "192.168.1.1";
|
||||
port = 2222;
|
||||
controlPersist = "10m";
|
||||
addKeysToAgent = "9h";
|
||||
compression = false;
|
||||
|
||||
forwardAgent = false;
|
||||
serverAliveInterval = 0;
|
||||
serverAliveCountMax = 3;
|
||||
hashKnownHosts = false;
|
||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||
controlMaster = "auto";
|
||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||
};
|
||||
"aur" = {
|
||||
hostname = "aur.archlinux.org";
|
||||
identityFile = "~/.ssh/id_rsa-aur";
|
||||
user = "aur";
|
||||
controlPersist = "10m";
|
||||
addKeysToAgent = "9h";
|
||||
compression = true;
|
||||
|
||||
forwardAgent = false;
|
||||
serverAliveInterval = 0;
|
||||
serverAliveCountMax = 3;
|
||||
hashKnownHosts = false;
|
||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||
controlMaster = "auto";
|
||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||
};
|
||||
"vpn1" = {
|
||||
# https://bill.pq.hosting/billmgr
|
||||
user = "root";
|
||||
hostname = "45.120.178.159";
|
||||
controlPersist = "10m";
|
||||
addKeysToAgent = "9h";
|
||||
compression = true;
|
||||
|
||||
forwardAgent = false;
|
||||
serverAliveInterval = 0;
|
||||
serverAliveCountMax = 3;
|
||||
hashKnownHosts = false;
|
||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||
controlMaster = "auto";
|
||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||
};
|
||||
"vpn2" = {
|
||||
# https://my.msk.host/billing/my-services
|
||||
user = "root";
|
||||
hostname = "194.67.193.95";
|
||||
controlPersist = "10m";
|
||||
addKeysToAgent = "9h";
|
||||
compression = true;
|
||||
|
||||
forwardAgent = false;
|
||||
serverAliveInterval = 0;
|
||||
serverAliveCountMax = 3;
|
||||
hashKnownHosts = false;
|
||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||
controlMaster = "auto";
|
||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
79
modules/hm/syncthing.nix
Normal file
79
modules/hm/syncthing.nix
Normal file
@@ -0,0 +1,79 @@
|
||||
{
|
||||
lib,
|
||||
hosts,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.syncthing = {
|
||||
guiAddress = lib.mkDefault "127.0.0.1:8384";
|
||||
overrideDevices = false;
|
||||
overrideFolders = false;
|
||||
cert = "~/.config/syncthing/cert";
|
||||
key = "~/.config/syncthing/key";
|
||||
|
||||
settings = {
|
||||
folders = {
|
||||
"Sync" = {
|
||||
id = "default";
|
||||
type = "sendreceive";
|
||||
enabled = lib.mkDefault true;
|
||||
label = "Sync";
|
||||
path = "~/Sync";
|
||||
};
|
||||
"Documents" = {
|
||||
id = "ikwrq-ahv5a";
|
||||
type = "sendreceive";
|
||||
enabled = lib.mkDefault false;
|
||||
label = "Documents";
|
||||
path = "~/Documents";
|
||||
};
|
||||
"Music" = {
|
||||
id = "6ytyt-ngvta";
|
||||
type = "sendreceive";
|
||||
enabled = lib.mkDefault false;
|
||||
label = "Music";
|
||||
path = "~/Music";
|
||||
};
|
||||
"Obsidian" = {
|
||||
id = "hyeaf-ygups";
|
||||
type = "sendreceive";
|
||||
enabled = lib.mkDefault false;
|
||||
label = "Obsidian";
|
||||
path = "~/Obsidian";
|
||||
};
|
||||
"Camera S25" = {
|
||||
id = "sm-s938b_9wbf-фото";
|
||||
enabled = lib.mkDefault false;
|
||||
type = "receiveonly";
|
||||
label = "Camera S25";
|
||||
path = "~/Photos/S25";
|
||||
};
|
||||
"PhotoArchive" = {
|
||||
id = "6detn-xjbco";
|
||||
type = "receiveonly";
|
||||
enabled = lib.mkDefault false;
|
||||
label = "PhotoArchive";
|
||||
path = "~/Photos/archive";
|
||||
ignorePerms = true;
|
||||
};
|
||||
"books" = {
|
||||
id = "6st45-t9jej";
|
||||
type = "sendreceive";
|
||||
enabled = lib.mkDefault false;
|
||||
label = "Books";
|
||||
path = "/mnt/hdd/Books";
|
||||
};
|
||||
};
|
||||
|
||||
devices = lib.mapAttrs (
|
||||
name: host:
|
||||
lib.mkIf (host ? syncthing) {
|
||||
addresses = [
|
||||
"tcp://${host.ip}:22000"
|
||||
];
|
||||
id = host.syncthing;
|
||||
}
|
||||
) hosts;
|
||||
};
|
||||
};
|
||||
}
|
||||
77
modules/hm/vivaldi.nix
Normal file
77
modules/hm/vivaldi.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
}:
|
||||
let
|
||||
conf = config.programs.vivaldi;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf conf.enable {
|
||||
home.file.vivaldiKDEScript = {
|
||||
target = ".local/bin/vivaldi-kde.sh";
|
||||
text = ''
|
||||
#!/bin/sh
|
||||
vivaldi --profile-directory=$(qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.ActivityName $(qdbus org.kde.ActivityManager /ActivityManager/Activities org.kde.ActivityManager.Activities.CurrentActivity)) "$@"
|
||||
'';
|
||||
executable = true;
|
||||
};
|
||||
|
||||
programs.vivaldi = {
|
||||
nativeMessagingHosts =
|
||||
[ ]
|
||||
++ lib.optionals (osConfig.services.desktopManager.plasma6.enable) [
|
||||
pkgs.kdePackages.plasma-browser-integration
|
||||
];
|
||||
};
|
||||
|
||||
xdg.desktopEntries = {
|
||||
vivaldi-stable-kde = {
|
||||
name = "Vivaldi-KDE";
|
||||
settings = {
|
||||
OnlyShowIn = "KDE";
|
||||
};
|
||||
genericName = "Web Browser for KDE";
|
||||
exec = "${config.home.file.vivaldiKDEScript.source} %U";
|
||||
terminal = false;
|
||||
actions = {
|
||||
"newPrivateWindow" = {
|
||||
name = "New Private Window";
|
||||
exec = "${config.home.file.vivaldiKDEScript.source} --incognito --remote";
|
||||
};
|
||||
"newWindow" = {
|
||||
name = "New Window";
|
||||
exec = "${config.home.file.vivaldiKDEScript.source} --new-window";
|
||||
};
|
||||
};
|
||||
icon = "vivaldi";
|
||||
startupNotify = true;
|
||||
categories = [
|
||||
"Application"
|
||||
"Network"
|
||||
"WebBrowser"
|
||||
];
|
||||
mimeType = [
|
||||
"application/pdf"
|
||||
"application/rdf+xml"
|
||||
"application/rss+xml"
|
||||
"application/xhtml+xml"
|
||||
"application/xhtml_xml"
|
||||
"application/xml"
|
||||
"image/gif"
|
||||
"image/jpeg"
|
||||
"image/png"
|
||||
"image/webp"
|
||||
"text/html"
|
||||
"text/xml"
|
||||
"x-scheme-handler/ftp"
|
||||
"x-scheme-handler/http"
|
||||
"x-scheme-handler/https"
|
||||
"x-scheme-handler/mailto"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
64
modules/hm/vscode/default.nix
Normal file
64
modules/hm/vscode/default.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.vscode = {
|
||||
package = pkgs.vscodium;
|
||||
|
||||
profiles = {
|
||||
default = {
|
||||
extensions = (import ./extensions { inherit pkgs config lib; });
|
||||
globalSnippets = {
|
||||
fixme = {
|
||||
body = [
|
||||
"$LINE_COMMENT FIXME: $0"
|
||||
];
|
||||
description = "Insert a FIXME remark";
|
||||
prefix = [
|
||||
"fixme"
|
||||
];
|
||||
};
|
||||
todo = {
|
||||
body = [
|
||||
"$LINE_COMMENT TODO: $0"
|
||||
];
|
||||
description = "Insert a TODO remark";
|
||||
prefix = [
|
||||
"todo"
|
||||
];
|
||||
};
|
||||
};
|
||||
languageSnippets = {
|
||||
go = { };
|
||||
};
|
||||
|
||||
keybindings = [
|
||||
# {
|
||||
# key = "ctrl+c";
|
||||
# command = "editor.action.clipboardCopyAction";
|
||||
# when = "textInputFocus";
|
||||
# }
|
||||
];
|
||||
|
||||
userTasks = { };
|
||||
|
||||
# userSettings = builtins.fromJSON (builtins.readFile ./settings.json);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"x-scheme-handler/vscodium" = [
|
||||
"codium-url-handler.desktop"
|
||||
];
|
||||
"x-scheme-handler/codium" = [
|
||||
"codium-url-handler.desktop"
|
||||
];
|
||||
"x-scheme-handler/vscode" = [
|
||||
"codium-url-handler.desktop"
|
||||
];
|
||||
};
|
||||
}
|
||||
36
modules/hm/vscode/extensions/default.nix
Normal file
36
modules/hm/vscode/extensions/default.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
go ? true,
|
||||
nix ? true,
|
||||
...
|
||||
}:
|
||||
with pkgs.vscode-extensions;
|
||||
[
|
||||
dracula-theme.theme-dracula
|
||||
# vscodevim.vim
|
||||
yzhang.markdown-all-in-one
|
||||
(lib.optionals go golang.go)
|
||||
(lib.optionals nix jnoortheen.nix-ide)
|
||||
mkhl.direnv
|
||||
gitlab.gitlab-workflow
|
||||
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-docker";
|
||||
publisher = "ms-azuretools";
|
||||
version = "1.29.4";
|
||||
sha256 = "1nhrp43gh4pwsdy0d8prndx2l0mrczf1kirjl1figrmhcp7h4q4g";
|
||||
};
|
||||
})
|
||||
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "yandex-code-assist";
|
||||
publisher = "yandex";
|
||||
|
||||
version = "0.11.17";
|
||||
};
|
||||
vsix = builtins.path {
|
||||
path = ./yandex-code-assist.zip;
|
||||
};
|
||||
})
|
||||
]
|
||||
BIN
modules/hm/vscode/extensions/yandex-code-assist.zip
Normal file
BIN
modules/hm/vscode/extensions/yandex-code-assist.zip
Normal file
Binary file not shown.
199
modules/hm/vscode/settings.json
Normal file
199
modules/hm/vscode/settings.json
Normal file
@@ -0,0 +1,199 @@
|
||||
{
|
||||
"files.autoSave": "afterDelay",
|
||||
"chat.editor.fontSize": 16,
|
||||
"window.autoDetectHighContrast": false,
|
||||
"workbench.settings.applyToAllProfiles": [
|
||||
"window.autoDetectColorScheme",
|
||||
"editor.formatOnSave"
|
||||
],
|
||||
"git.autofetch": true,
|
||||
"editor.formatOnSave": true,
|
||||
"files.autoSaveWhenNoErrors": true,
|
||||
"go.coverOnSingleTestFile": true,
|
||||
"go.coverShowCounts": true,
|
||||
"go.formatTool": "gofmt",
|
||||
"go.installDependenciesWhenBuilding": true,
|
||||
"go.lintTool": "golangci-lint",
|
||||
"go.languageServerFlags": [],
|
||||
"workbench.colorTheme": "Dracula Theme Soft",
|
||||
"window.zoomLevel": 1.2,
|
||||
"editor.minimap.showSlider": "always",
|
||||
"editor.minimap.size": "fit",
|
||||
"go.editorContextMenuCommands": {
|
||||
"fillStruct": true,
|
||||
"removeTags": true,
|
||||
"testPackage": true,
|
||||
"testFile": true,
|
||||
"generateTestForFile": true,
|
||||
"generateTestForPackage": true,
|
||||
"benchmarkAtCursor": true
|
||||
},
|
||||
"go.testFlags": [
|
||||
"-race",
|
||||
"-v"
|
||||
],
|
||||
"go.toolsEnvVars": {},
|
||||
"go.toolsGopath": "",
|
||||
"gopls": {
|
||||
"ui.codelenses": {
|
||||
"tidy": true,
|
||||
"generate": true,
|
||||
"test": true,
|
||||
"vulncheck": true,
|
||||
"upgrade_dependency": true
|
||||
},
|
||||
"ui.completion.experimentalPostfixCompletions": true,
|
||||
"ui.semanticTokens": true
|
||||
},
|
||||
"git.allowForcePush": true,
|
||||
"git.branchPrefix": "sub-task/",
|
||||
"git.enableSmartCommit": true,
|
||||
"git.fetchOnPull": true,
|
||||
"git.followTagsWhenSync": true,
|
||||
"git.mergeEditor": true,
|
||||
"git.timeline.showUncommitted": true,
|
||||
"github.gitProtocol": "ssh",
|
||||
"telemetry.telemetryLevel": "all",
|
||||
"testing.coverageToolbarEnabled": true,
|
||||
"go.testEnvVars": {},
|
||||
"gitlab.duoCodeSuggestions.enabled": false,
|
||||
"gitlab.duoCodeSuggestions.enabledSupportedLanguages": {
|
||||
"c": false,
|
||||
"cpp": false,
|
||||
"csharp": false,
|
||||
"go": false,
|
||||
"handlebars": false,
|
||||
"haml": false,
|
||||
"java": false,
|
||||
"javascript": false,
|
||||
"javascriptreact": false,
|
||||
"kotlin": false,
|
||||
"python": false,
|
||||
"php": false,
|
||||
"ruby": false,
|
||||
"rust": false,
|
||||
"scala": false,
|
||||
"shellscript": false,
|
||||
"sql": false,
|
||||
"swift": false,
|
||||
"typescript": false,
|
||||
"typescriptreact": false,
|
||||
"svelte": false,
|
||||
"terraform": false,
|
||||
"terragrunt": false,
|
||||
"vue": false
|
||||
},
|
||||
"redhat.telemetry.enabled": true,
|
||||
"go.testTags": null,
|
||||
"diffEditor.renderSideBySide": true,
|
||||
"diffEditor.experimental.showMoves": true,
|
||||
"docker.composeCommand": "docker compose",
|
||||
"docker.contexts.showInStatusBar": true,
|
||||
"workbench.editor.autoLockGroups": {
|
||||
"mainThreadWebview-markdown.preview": true
|
||||
},
|
||||
"workbench.editor.pinnedTabsOnSeparateRow": true,
|
||||
"workbench.editor.sharedViewState": true,
|
||||
"workbench.editor.wrapTabs": true,
|
||||
"window.menuBarVisibility": "toggle",
|
||||
"window.density.editorTabHeight": "compact",
|
||||
"workbench.tree.renderIndentGuides": "always",
|
||||
"workbench.settings.openDefaultSettings": true,
|
||||
"explorer.confirmDelete": false,
|
||||
"git.confirmSync": false,
|
||||
"gitlab.duoChat.enabled": false,
|
||||
"gitlab.duoCodeSuggestions.openTabsContext": false,
|
||||
"gitlab.duo.enabledWithoutGitlabProject": false,
|
||||
"gitlab.customQueries": [
|
||||
{
|
||||
"name": "Issues assigned to me",
|
||||
"type": "issues",
|
||||
"scope": "assigned_to_me",
|
||||
"state": "opened",
|
||||
"noItemText": "No issues assigned to you."
|
||||
},
|
||||
{
|
||||
"name": "Issues created by me",
|
||||
"type": "issues",
|
||||
"scope": "created_by_me",
|
||||
"state": "opened",
|
||||
"noItemText": "No issues created by you."
|
||||
},
|
||||
{
|
||||
"name": "Merge requests assigned to me",
|
||||
"type": "merge_requests",
|
||||
"scope": "assigned_to_me",
|
||||
"state": "opened",
|
||||
"noItemText": "No merge requests assigned to you."
|
||||
},
|
||||
{
|
||||
"name": "Merge requests I'm reviewing",
|
||||
"type": "merge_requests",
|
||||
"reviewer": "<current_user>",
|
||||
"state": "opened",
|
||||
"noItemText": "No merge requests for you to review."
|
||||
},
|
||||
{
|
||||
"name": "Merge requests created by me",
|
||||
"type": "merge_requests",
|
||||
"scope": "created_by_me",
|
||||
"state": "opened",
|
||||
"noItemText": "No merge requests created by you."
|
||||
},
|
||||
{
|
||||
"name": "All project merge requests",
|
||||
"type": "merge_requests",
|
||||
"scope": "all",
|
||||
"state": "opened",
|
||||
"noItemText": "The project has no merge requests"
|
||||
}
|
||||
],
|
||||
"nix.serverPath": "/etc/profiles/per-user/fenix/bin/nil",
|
||||
"nix.formatterPath": "/etc/profiles/per-user/fenix/bin/nixfmt",
|
||||
"nix.serverSettings": {
|
||||
"nil": {
|
||||
"formatting": {
|
||||
"command": [
|
||||
"nixfmt"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"markdown-mermaid.lightModeTheme": "forest",
|
||||
"extensions.experimental.affinity": {
|
||||
"asvetliakov.vscode-neovim": 1
|
||||
},
|
||||
"workbench.preferredDarkColorTheme": "Catppuccin Macchiato",
|
||||
"window.autoDetectColorScheme": true,
|
||||
"go.diagnostic.vulncheck": "Imports",
|
||||
"go.inlayHints.compositeLiteralFields": true,
|
||||
"go.inlayHints.constantValues": true,
|
||||
"editor.semanticHighlighting.enabled": true,
|
||||
"regroupImports.organization": "gitlab.ptsecurity.com",
|
||||
"go.coverMode": "atomic",
|
||||
"nix.enableLanguageServer": true,
|
||||
"window.newWindowProfile": "Default",
|
||||
"protoc": {},
|
||||
"go.buildTags": "integration",
|
||||
"workbench.preferredLightColorTheme": "Catppuccin Latte",
|
||||
"cSpell.userWords": [
|
||||
"логгер",
|
||||
"логгирования",
|
||||
"Appender",
|
||||
"fenix",
|
||||
"Prepender",
|
||||
"zaptest"
|
||||
],
|
||||
"cSpell.spellCheckOnlyWorkspaceFiles": true,
|
||||
"chat.commandCenter.enabled": false,
|
||||
"catppuccin.accentColor": "flamingo",
|
||||
"rest-client.showResponseInDifferentTab": true,
|
||||
"cSpell.language": "en,ru",
|
||||
"cSpell.ignoreRegExpList": [
|
||||
"/\\/\\/nolint:[a-z]+/g",
|
||||
"/import \\([^)]+\\)/g"
|
||||
],
|
||||
"cSpell.enabledFileTypes": {
|
||||
"ignore": false
|
||||
}
|
||||
}
|
||||
62
modules/hm/zsh.nix
Normal file
62
modules/hm/zsh.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
programs.zsh = {
|
||||
autosuggestion = {
|
||||
enable = true;
|
||||
strategy = [
|
||||
"history"
|
||||
"completion"
|
||||
];
|
||||
};
|
||||
syntaxHighlighting.enable = lib.mkDefault true;
|
||||
autocd = true;
|
||||
# defaultKeymap = "vicmd";
|
||||
dirHashes = { };
|
||||
shellAliases = {
|
||||
"ll" = "ls -l";
|
||||
"sc" = "systemctl";
|
||||
"ssc" = "sudo systemctl";
|
||||
"scu" = "systemctl --user";
|
||||
};
|
||||
shellGlobalAliases = {
|
||||
UUID = "$(uuidgen | tr -d \\n)";
|
||||
G = "| grep";
|
||||
};
|
||||
zsh-abbr = {
|
||||
enable = true;
|
||||
abbreviations = {
|
||||
|
||||
};
|
||||
globalAbbreviations = {
|
||||
|
||||
};
|
||||
};
|
||||
oh-my-zsh = {
|
||||
enable = lib.mkDefault true;
|
||||
plugins = [
|
||||
"git"
|
||||
"ssh"
|
||||
"sudo"
|
||||
"z"
|
||||
"golang"
|
||||
"direnv"
|
||||
"kubectl"
|
||||
"docker"
|
||||
"docker-compose"
|
||||
"helm"
|
||||
"themes"
|
||||
"aliases"
|
||||
"alias-finder"
|
||||
"rsync"
|
||||
];
|
||||
theme = lib.mkDefault "agnoster";
|
||||
};
|
||||
|
||||
initContent = ''
|
||||
zstyle ':omz:plugins:alias-finder' autoload yes
|
||||
zstyle ':omz:plugins:alias-finder' longer no
|
||||
zstyle ':omz:plugins:alias-finder' exact yes
|
||||
zstyle ':omz:plugins:alias-finder' cheaper yes
|
||||
'';
|
||||
};
|
||||
}
|
||||
43
modules/sys/docker.nix
Normal file
43
modules/sys/docker.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
port = 2375;
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
docker-credential-helpers
|
||||
];
|
||||
|
||||
virtualisation.oci-containers.backend = "docker";
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = lib.mkDefault true;
|
||||
storageDriver = lib.mkDefault "btrfs";
|
||||
extraOptions = lib.mkDefault "";
|
||||
extraPackages = with pkgs; [
|
||||
docker-credential-helpers
|
||||
docker-buildx
|
||||
];
|
||||
daemon.settings = {
|
||||
"registry-mirrors" = [
|
||||
"https://mirror.gcr.io"
|
||||
"https://daocloud.io"
|
||||
"https://c.163.com"
|
||||
"https://registry.docker-cn.com"
|
||||
];
|
||||
"dns" = [
|
||||
"192.168.1.1"
|
||||
"8.8.8.8"
|
||||
"10.100.10.100"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.sockets.docker.listenStreams = [
|
||||
("0.0.0.0:" + builtins.toString (port))
|
||||
];
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
port
|
||||
];
|
||||
|
||||
}
|
||||
14
modules/sys/printing/Dockerfile
Normal file
14
modules/sys/printing/Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
||||
FROM archlinux:latest
|
||||
|
||||
COPY ./ricoh-sp150-ppd-v1.0.22-1-x86_64.pkg.tar.zst /opt/
|
||||
|
||||
RUN pacman -Sy && pacman -S --noconfirm cups && pacman -U --noconfirm /opt/ricoh-sp150-ppd-v1.0.22-1-x86_64.pkg.tar.zst && pacman -Scc --noconfirm
|
||||
RUN useradd -r -G root -M admin; \
|
||||
sed -i 's%admin:!:20024%admin:$y$j9T$hw1G6LnWpCcLzXHTpxzxf0$GVeFQpWJ5X2pw7ZZqGzn2CPU/nS9aWAmD0wlEWYkGZ4:20024%g' /etc/shadow; \
|
||||
ln -fs /usr/share/zoneinfo/EuropeMoscow /etc/localtime
|
||||
|
||||
COPY ./cupsd.conf /etc/cups/cupsd.conf
|
||||
COPY ./printers.conf /etc/cups/printers.conf
|
||||
COPY ./RICOH_SP_150SU.ppd /etc/cups/ppd/RICOH_SP_150SU.ppd
|
||||
|
||||
CMD ["/usr/bin/cupsd", "-f"]
|
||||
536
modules/sys/printing/RICOH_SP_150SU.ppd
Normal file
536
modules/sys/printing/RICOH_SP_150SU.ppd
Normal file
@@ -0,0 +1,536 @@
|
||||
*PPD-Adobe: "4.3"
|
||||
*FileVersion: "1.022"
|
||||
*FormatVersion: "4.3"
|
||||
*LanguageEncoding: ISOLatin1
|
||||
*LanguageVersion: English
|
||||
*Manufacturer: "RICOH"
|
||||
*PCFileName: "SP150.PPD"
|
||||
*Product: "(RICOH SP 150)"
|
||||
*PSVersion: "(3015.103) 1"
|
||||
*ShortNickName: "RICOH SP 150"
|
||||
*ModelName: "RICOH SP 150"
|
||||
*NickName: "RICOH SP 150 v1.022"
|
||||
*cupsFilter: "application/vnd.cups-raster 0 RICOH_SP_150Filter.app"
|
||||
*%APPrinterIconPath: "/Library/Printers/RICOH/Icons/RICOH SP 150.icns"
|
||||
*%APPrinterLowInkTool: "/Library/Printers/RICOH/Utility/TonerSupplyToolSP 150.app/Contents/MacOS/TonerSupplyToolSP 150"
|
||||
|
||||
*% == Constraints (Page Size vs. Paper Type) ==
|
||||
*UIConstraints: *MediaType Plain *PageSize Env10
|
||||
*UIConstraints: *MediaType Plain *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType Plain *PageSize EnvC5
|
||||
*UIConstraints: *MediaType Plain *PageSize EnvDL
|
||||
*UIConstraints: *MediaType Plain-side2 *PageSize Env10
|
||||
*UIConstraints: *MediaType Plain-side2 *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType Plain-side2 *PageSize EnvC5
|
||||
*UIConstraints: *MediaType Plain-side2 *PageSize EnvDL
|
||||
*UIConstraints: *MediaType PlainThick *PageSize Env10
|
||||
*UIConstraints: *MediaType PlainThick *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType PlainThick *PageSize EnvC5
|
||||
*UIConstraints: *MediaType PlainThick *PageSize EnvDL
|
||||
*UIConstraints: *MediaType PlainThick-side2 *PageSize Env10
|
||||
*UIConstraints: *MediaType PlainThick-side2 *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType PlainThick-side2 *PageSize EnvC5
|
||||
*UIConstraints: *MediaType PlainThick-side2 *PageSize EnvDL
|
||||
*UIConstraints: *MediaType Recycled *PageSize Env10
|
||||
*UIConstraints: *MediaType Recycled *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType Recycled *PageSize EnvC5
|
||||
*UIConstraints: *MediaType Recycled *PageSize EnvDL
|
||||
*UIConstraints: *MediaType Recycled-side2 *PageSize Env10
|
||||
*UIConstraints: *MediaType Recycled-side2 *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType Recycled-side2 *PageSize EnvC5
|
||||
*UIConstraints: *MediaType Recycled-side2 *PageSize EnvDL
|
||||
*UIConstraints: *MediaType Label *PageSize Env10
|
||||
*UIConstraints: *MediaType Label *PageSize EnvMonarch
|
||||
*UIConstraints: *MediaType Label *PageSize EnvC5
|
||||
*UIConstraints: *MediaType Label *PageSize EnvDL
|
||||
*UIConstraints: *PageSize Env10 *MediaType Plain
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType Plain
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType Plain
|
||||
*UIConstraints: *PageSize EnvDL *MediaType Plain
|
||||
*UIConstraints: *PageSize Env10 *MediaType Plain-side2
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType Plain-side2
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType Plain-side2
|
||||
*UIConstraints: *PageSize EnvDL *MediaType Plain-side2
|
||||
*UIConstraints: *PageSize Env10 *MediaType PlainThick
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType PlainThick
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType PlainThick
|
||||
*UIConstraints: *PageSize EnvDL *MediaType PlainThick
|
||||
*UIConstraints: *PageSize Env10 *MediaType PlainThick-side2
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType PlainThick-side2
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType PlainThick-side2
|
||||
*UIConstraints: *PageSize EnvDL *MediaType PlainThick-side2
|
||||
*UIConstraints: *PageSize Env10 *MediaType Recycled
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType Recycled
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType Recycled
|
||||
*UIConstraints: *PageSize EnvDL *MediaType Recycled
|
||||
*UIConstraints: *PageSize Env10 *MediaType Recycled-side2
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType Recycled-side2
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType Recycled-side2
|
||||
*UIConstraints: *PageSize EnvDL *MediaType Recycled-side2
|
||||
*UIConstraints: *PageSize Env10 *MediaType Label
|
||||
*UIConstraints: *PageSize EnvMonarch *MediaType Label
|
||||
*UIConstraints: *PageSize EnvC5 *MediaType Label
|
||||
*UIConstraints: *PageSize EnvDL *MediaType Label
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType Label
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType Label
|
||||
*UIConstraints: *MediaType Label *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType Label *DrvDuplex DrvDuplexTumble
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType Envelope
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType Envelope
|
||||
*UIConstraints: *MediaType Envelope *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType Envelope *DrvDuplex DrvDuplexTumble
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType Plain-side2
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType Plain-side2
|
||||
*UIConstraints: *MediaType Plain-side2 *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType Plain-side2 *DrvDuplex DrvDuplexTumble
|
||||
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType PlainThick-side2
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType PlainThick-side2
|
||||
*UIConstraints: *MediaType PlainThick-side2 *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType PlainThick-side2 *DrvDuplex DrvDuplexTumble
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType Covers-side2
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType Covers-side2
|
||||
*UIConstraints: *MediaType Covers-side2 *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType Covers-side2 *DrvDuplex DrvDuplexTumble
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType Coated-side2
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType Coated-side2
|
||||
*UIConstraints: *MediaType Coated-side2 *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType Coated-side2 *DrvDuplex DrvDuplexTumble
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *MediaType Recycled-side2
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *MediaType Recycled-side2
|
||||
*UIConstraints: *MediaType Recycled-side2 *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *MediaType Recycled-side2 *DrvDuplex DrvDuplexTumble
|
||||
|
||||
*UIConstraints: *ImageType Photo *TonerMode 1
|
||||
*UIConstraints: *ImageType Photo *TonerMode 2
|
||||
*UIConstraints: *ImageType Photo *TonerMode 3
|
||||
|
||||
*UIConstraints: *ImageType Graphics *TonerMode 1
|
||||
*UIConstraints: *ImageType Graphics *TonerMode 2
|
||||
*UIConstraints: *ImageType Graphics *TonerMode 3
|
||||
|
||||
*UIConstraints: *ImageType WebPages *TonerMode 1
|
||||
*UIConstraints: *ImageType WebPages *TonerMode 2
|
||||
*UIConstraints: *ImageType WebPages *TonerMode 3
|
||||
|
||||
*UIConstraints: *ImageType POP *TonerMode 1
|
||||
*UIConstraints: *ImageType POP *TonerMode 2
|
||||
*UIConstraints: *ImageType POP *TonerMode 3
|
||||
|
||||
*UIConstraints: *DrvDuplex DrvDuplexNoTumble *RISaveBlankSheet True
|
||||
*UIConstraints: *DrvDuplex DrvDuplexTumble *RISaveBlankSheet True
|
||||
*UIConstraints: *RISaveBlankSheet True *DrvDuplex DrvDuplexNoTumble
|
||||
*UIConstraints: *RISaveBlankSheet True *DrvDuplex DrvDuplexTumble
|
||||
|
||||
|
||||
*UIConstraints: *TonerMode 1 *ImageType Photo
|
||||
*UIConstraints: *TonerMode 2 *ImageType Photo
|
||||
*UIConstraints: *TonerMode 3 *ImageType Photo
|
||||
|
||||
*UIConstraints: *TonerMode 1 *ImageType Graphics
|
||||
*UIConstraints: *TonerMode 2 *ImageType Graphics
|
||||
*UIConstraints: *TonerMode 3 *ImageType Graphics
|
||||
|
||||
*UIConstraints: *TonerMode 1 *ImageType WebPages
|
||||
*UIConstraints: *TonerMode 2 *ImageType WebPages
|
||||
*UIConstraints: *TonerMode 3 *ImageType WebPages
|
||||
|
||||
*UIConstraints: *TonerMode 1 *ImageType POP
|
||||
*UIConstraints: *TonerMode 2 *ImageType POP
|
||||
*UIConstraints: *TonerMode 3 *ImageType POP
|
||||
|
||||
*UIConstraints: *ColorModel Gray *IAM Complementary
|
||||
*UIConstraints: *IAM Complementary *ColorModel Gray
|
||||
|
||||
|
||||
|
||||
|
||||
*% ==== Device Capabilities ===============
|
||||
*LanguageLevel: "3"
|
||||
*Protocols: TBCP
|
||||
*1284Modes Parallel: Compat Nibble ECP
|
||||
*1284DeviceID: "MFG:RICOH;MDL:SP 150;DES:RICOH SP 150;CMD:GDI;CLS:PRINTER;"
|
||||
*End
|
||||
|
||||
*ColorDevice: False
|
||||
*DefaultColorSpace: Grayscale
|
||||
*VariablePaperSize: True
|
||||
*LandscapeOrientation: Plus90
|
||||
|
||||
*TTRasterizer: Type42
|
||||
*?TTRasterizer: "
|
||||
save
|
||||
42 /FontType resourcestatus
|
||||
{pop pop (Type42)}{(No Type42)} ifelse = flush
|
||||
restore
|
||||
"
|
||||
*End
|
||||
*FileSystem: True
|
||||
*?FileSystem: "
|
||||
save false
|
||||
(%disk?%)
|
||||
{ currentdevparams dup /Writeable known
|
||||
{ /Writeable get {pop true} if } { pop } ifelse
|
||||
} 10 string /IODevice resourceforall
|
||||
{(True)}{(False)} ifelse = flush
|
||||
restore
|
||||
"
|
||||
*End
|
||||
|
||||
*Throughput: "25"
|
||||
*Password: "()"
|
||||
*ExitServer: "
|
||||
count 0 eq
|
||||
{ false } { true exch startjob } ifelse
|
||||
not {
|
||||
(WARNING: Cannot modify initial VM.) =
|
||||
(Missing or invalid password.) =
|
||||
(Please contact the author of this software.) = flush quit
|
||||
} if
|
||||
"
|
||||
*End
|
||||
*Reset: "
|
||||
count 0 eq
|
||||
{ false } { true exch startjob } ifelse
|
||||
not {
|
||||
(WARNING: Cannot reset printer.) =
|
||||
(Missing or invalid password.) =
|
||||
(Please contact the author of this software.) = flush quit
|
||||
} if
|
||||
systemdict /quit get exec
|
||||
(WARNING : Printer Reset Failed.) = flush
|
||||
"
|
||||
*End
|
||||
|
||||
*AccurateScreensSupport: True
|
||||
*SuggestedJobTimeout: "0"
|
||||
*SuggestedWaitTimeout: "300"
|
||||
*PrintPSErrors: True
|
||||
*APSupportsCustomColorMatching: true
|
||||
*APDefaultCustomColorMatchingProfile: sRGB
|
||||
*APCustomColorMatchingProfile: sRGB
|
||||
|
||||
|
||||
|
||||
|
||||
*% Paper Handling ===================
|
||||
*OpenUI *PageSize/Media Size: PickOne
|
||||
*OrderDependency: 11 AnySetup *PageSize
|
||||
*DefaultPageSize: Letter
|
||||
*PageSize Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize A5/A5: "<</PageSize[420 595]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize A6/A6: "<</PageSize[297 420]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize B5/JIS B5: "<</PageSize[516 729]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize B6/JIS B6: "<</PageSize[363 516]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize 16K/16K: "<</PageSize[524 737]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize A5LEF/A5(LEF): "<</PageSize[595 420]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize B6LEF/JIS B6(LEF): "<</PageSize[516 363]/ImagingBBox null>>setpagedevice"
|
||||
*PageSize Legal/Legal: "<</PageSize [612 1008]/ImagingBBox null>>setpagedevice"
|
||||
*CloseUI: *PageSize
|
||||
*OpenUI *PageRegion/Media Size: PickOne
|
||||
*OrderDependency: 12 AnySetup *PageRegion
|
||||
*DefaultPageRegion: Letter
|
||||
*PageRegion Letter/US Letter: "<</PageSize[612 792]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion A4/A4: "<</PageSize[595 842]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion A5/A5: "<</PageSize[420 595]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion A6/A6: "<</PageSize[297 420]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion B5/JIS B5: "<</PageSize[516 729]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion B6/JIS B6: "<</PageSize[363 516]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion Executive/Executive: "<</PageSize[522 756]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion 16K/16K: "<</PageSize[524 737]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion A5LEF/A5(LEF): "<</PageSize[595 420]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion B6LEF/JIS B6(LEF): "<</PageSize[516 363]/ImagingBBox null>>setpagedevice"
|
||||
*PageRegion Legal/Legal: "<</PageSize [612 1008]/ImagingBBox null>>setpagedevice"
|
||||
*CloseUI: *PageRegion
|
||||
*DefaultImageableArea: Letter
|
||||
*ImageableArea Letter/US Letter: "11.905511856079 11.905511856079 600.094482421875 780.094482421875"
|
||||
*ImageableArea A4/A4: "11.905511856079 11.905511856079 583.094482421875 830.094482421875"
|
||||
*ImageableArea A5/A5: "11.905511856079 11.905511856079 408.094482421875 583.094482421875"
|
||||
*ImageableArea A6/A6: "11.905511856079 11.905511856079 285.094482421875 408.094482421875"
|
||||
*ImageableArea B5/JIS B5: "11.905511856079 11.905511856079 504.094482421875 717.094482421875"
|
||||
*ImageableArea B6/JIS B6: "11.905511856079 11.905511856079 351.094482421875 504.094482421875"
|
||||
*ImageableArea Executive/Executive: "11.905511856079 11.905511856079 510.094482421875 744.094482421875"
|
||||
*ImageableArea 16K/16K: "11.905511856079 11.905511856079 512.094482421875 725.094482421875"
|
||||
*ImageableArea A5LEF/A5(LEF): "11.905511856079 11.905511856079 583.094482421875 408.094482421875"
|
||||
*ImageableArea B6LEF/JIS B6(LEF): "11.905511856079 11.905511856079 504.094482421875 351.094482421875"
|
||||
*ImageableArea Legal/Legal: "11.905511856079 11.905511856079 600.094482421875 996.09448818898"
|
||||
*DefaultPaperDimension: Letter
|
||||
*PaperDimension Letter/US Letter: "612 792"
|
||||
*PaperDimension A4/A4: "595 842"
|
||||
*PaperDimension A5/A5: "420 595"
|
||||
*PaperDimension A6/A6: "297 420"
|
||||
*PaperDimension B5/JIS B5: "516 729"
|
||||
*PaperDimension B6/JIS B6: "363 516"
|
||||
*PaperDimension Executive/Executive: "522 756"
|
||||
*PaperDimension 16K/16K: "524 737"
|
||||
*PaperDimension A5LEF/A5(LEF): "595 420"
|
||||
*PaperDimension B6LEF/JIS B6(LEF): "516 363"
|
||||
*PaperDimension Legal/Legal: "612 1008"
|
||||
*MaxMediaWidth: "612.283508300781"
|
||||
*MaxMediaHeight: "1152"
|
||||
*HWMargins: 11.905511856079 11.905511856079 11.905511856079 11.905511856079
|
||||
*CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice"
|
||||
*ParamCustomPageSize Width: 1 points 215.999 612.284
|
||||
*ParamCustomPageSize Height: 2 points 328.817 1008.001
|
||||
*ParamCustomPageSize WidthOffset: 3 points 0 0
|
||||
*ParamCustomPageSize HeightOffset: 4 points 0 0
|
||||
*ParamCustomPageSize Orientation: 5 int 0 0
|
||||
|
||||
|
||||
*LeadingEdge Short: ""
|
||||
*DefaultLeadingEdge: Short
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*OpenGroup: Graphics/Detailed Settings
|
||||
*% OutputMode Information ===================
|
||||
|
||||
|
||||
*AccurateScreensSupport: True
|
||||
*OpenUI *DrvResolution/Image Quality: PickOne
|
||||
*OrderDependency: 10 AnySetup *DrvResolution
|
||||
*DefaultDrvResolution: 600dpi
|
||||
*DrvResolution 600dpi/600DPI: "<</HWResolution [600 600]>>setpagedevice"
|
||||
*DrvResolution 1200dpi/1200DPI: "<</HWResolution [1200 600]>>setpagedevice"
|
||||
*CloseUI: *DrvResolution
|
||||
|
||||
*AccurateScreensSupport: True
|
||||
*OpenUI *ColorModel/Output Color: PickOne
|
||||
*OrderDependency: 10 AnySetup *ColorModel
|
||||
*DefaultColorModel: Gray
|
||||
*ColorModel Gray/Black: "<</cupsBitsPerPixel 8/cupsBitsPerColor 8/cupsColorSpace 0/NegativePrint true>>setpagedevice"
|
||||
*CloseUI: *ColorModel
|
||||
|
||||
|
||||
|
||||
*% Image Rotation ===============
|
||||
*OpenUI *ImageRotation/Image Rotation: Boolean
|
||||
*OrderDependency: 15.0 AnySetup *ImageRotation
|
||||
*DefaultImageRotation: False
|
||||
*ImageRotation False/Off: "<</ImageRotation false >>setpagedevice"
|
||||
*ImageRotation True/On: "<</ImageRotation true >>setpagedevice"
|
||||
*CloseUI: *ImageRotation
|
||||
*% Toner Mode ===============
|
||||
*OpenUI *TonerMode/Toner Saving Mode: PickOne
|
||||
*OrderDependency: 15.0 AnySetup *TonerMode
|
||||
*DefaultTonerMode: 0
|
||||
*TonerMode 1/On: "<</TonerMode>>setpagedevice"
|
||||
*TonerMode 0/Off: "<</TonerMode>>setpagedevice"
|
||||
*CloseUI: *TonerMode
|
||||
|
||||
*ColorKeyWords: "StpBrightness"
|
||||
*OpenUI *StpBrightness/Brightness: PickOne
|
||||
*OrderDependency: 41.0 AnySetup *StpBrightness
|
||||
*DefaultStpBrightness: 200
|
||||
*StpBrightness 100/-100: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 120/-80: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 140/-60: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 160/-40: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 180/-20: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 200/0: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 220/20: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 240/40: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 260/60: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 280/80: "<</StpBrightness>>setpagedevice"
|
||||
*StpBrightness 300/100: "<</StpBrightness>>setpagedevice"
|
||||
*CloseUI: *StpBrightness
|
||||
*CloseGroup: Graphics
|
||||
|
||||
|
||||
|
||||
*OpenGroup: ColorBalanceGroup/Color Balance
|
||||
|
||||
|
||||
*OpenUI *RIColorDensityBlackLow/Low Density (K): PickOne
|
||||
*OrderDependency: 50.0 AnySetup *RIColorDensityBlackLow
|
||||
*DefaultRIColorDensityBlackLow: 0
|
||||
*RIColorDensityBlackLow 3/Darker (+3): "/Black/Low 3/Custom/ProcSet"
|
||||
*RIColorDensityBlackLow 2/Darker (+2): "/Black/Low 2/Custom/ProcSet"
|
||||
*RIColorDensityBlackLow 1/Darker (+1): "/Black/Low 1/Custom/ProcSet"
|
||||
*RIColorDensityBlackLow 0/Normal (0): "/Black/Low 0/Custom/ProcSet"
|
||||
*RIColorDensityBlackLow -1/Lighter (-1): "/Black/Low -1/Custom/ProcSet"
|
||||
*RIColorDensityBlackLow -2/Lighter (-2): "/Black/Low -2/Custom/ProcSet"
|
||||
*RIColorDensityBlackLow -3/Lighter (-3): "/Black/Low -3/Custom/ProcSet"
|
||||
*CloseUI: *RIColorDensityBlackLow
|
||||
|
||||
*OpenUI *RIColorDensityBlackMid/Medium Density (K): PickOne
|
||||
*OrderDependency: 51.0 AnySetup *RIColorDensityBlackMid
|
||||
*DefaultRIColorDensityBlackMid: 0
|
||||
*RIColorDensityBlackMid 3/Darker (+3): "/Black/Middle 3/Custom/ProcSet"
|
||||
*RIColorDensityBlackMid 2/Darker (+2): "/Black/Middle 2/Custom/ProcSet"
|
||||
*RIColorDensityBlackMid 1/Darker (+1): "/Black/Middle 1/Custom/ProcSet"
|
||||
*RIColorDensityBlackMid 0/Normal (0): "/Black/Middle 0/Custom/ProcSet"
|
||||
*RIColorDensityBlackMid -1/Lighter (-1): "/Black/Middle -1/Custom/ProcSet"
|
||||
*RIColorDensityBlackMid -2/Lighter (-2): "/Black/Middle -2/Custom/ProcSet"
|
||||
*RIColorDensityBlackMid -3/Lighter (-3): "/Black/Middle -3/Custom/ProcSet"
|
||||
*CloseUI: *RIColorDensityBlackMid
|
||||
|
||||
*OpenUI *RIColorDensityBlackHigh/High Density (K): PickOne
|
||||
*OrderDependency: 52.0 AnySetup *RIColorDensityBlackHigh
|
||||
*DefaultRIColorDensityBlackHigh: 0
|
||||
*RIColorDensityBlackHigh 3/Darker (+3): "/Black/High 3/Custom/ProcSet"
|
||||
*RIColorDensityBlackHigh 2/Darker (+2): "/Black/High 2/Custom/ProcSet"
|
||||
*RIColorDensityBlackHigh 1/Darker (+1): "/Black/High 1/Custom/ProcSet"
|
||||
*RIColorDensityBlackHigh 0/Normal (0): "/Black/High 0/Custom/ProcSet"
|
||||
*RIColorDensityBlackHigh -1/Lighter (-1): "/Black/High -1/Custom/ProcSet"
|
||||
*RIColorDensityBlackHigh -2/Lighter (-2): "/Black/High -2/Custom/ProcSet"
|
||||
*RIColorDensityBlackHigh -3/Lighter (-3): "/Black/High -3/Custom/ProcSet"
|
||||
*CloseUI: *RIColorDensityBlackHigh
|
||||
*CloseGroup: ColorBalanceGroup
|
||||
|
||||
*OpenGroup: AdvancedMedia/Paper Handling
|
||||
*% Collate ===============
|
||||
*OpenUI *Collate/Collated: Boolean
|
||||
*OrderDependency: 15.0 AnySetup *Collate
|
||||
*DefaultCollate: False
|
||||
*Collate False/Off: "<</Collate false >>setpagedevice"
|
||||
*Collate True/On: "<</Collate true >>setpagedevice"
|
||||
*CloseUI: *Collate
|
||||
|
||||
|
||||
*% MediaType ===============
|
||||
*OpenUI *MediaType/Paper Type: PickOne
|
||||
*OrderDependency: 13 AnySetup *MediaType
|
||||
*DefaultMediaType: Plain
|
||||
*MediaType Plain/Plain: "<</MediaType(Plain)/cupsMediaType 0>>setpagedevice"
|
||||
*MediaType Recycled/Recycled: "<</MediaType(Recycled)/cupsMediaType 1>>setpagedevice"
|
||||
*MediaType PlainThick/Plain Thick: "<</MediaType(Plain Thick)/cupsMediaType 2>>setpagedevice"
|
||||
*MediaType PlainThin/Plain Thin: "<</MediaType(Plain Thin)/cupsMediaType 3>>setpagedevice"
|
||||
*MediaType Label/Label: "<</MediaType(Label)/cupsMediaType 4>>setpagedevice"
|
||||
*CloseUI: *MediaType
|
||||
|
||||
*OpenUI *DrvDuplex/Duplex: PickOne
|
||||
*OrderDependency: 31 AnySetup *DrvDuplex
|
||||
*DefaultDrvDuplex: None
|
||||
*DrvDuplex None/1 Sided Print: ""
|
||||
*DrvDuplex DrvDuplexNoTumble/Flip on Long Edge: "<</DrvDuplex true /Tumble false>>setpagedevice"
|
||||
*DrvDuplex DrvDuplexTumble/Flip on Short Edge: "<</DrvDuplex true /Tumble true>>setpagedevice"
|
||||
*CloseUI: *DrvDuplex
|
||||
|
||||
|
||||
*CloseGroup: AdvancedMedia
|
||||
|
||||
*OpenGroup: PrinterFunction/Printer Specific Options
|
||||
*% Color Control ===============
|
||||
*OpenUI *RISaveBlankSheet/Skip Blank Pages: Boolean
|
||||
*OrderDependency: 40.0 AnySetup *RISaveBlankSheet
|
||||
*DefaultRISaveBlankSheet: False
|
||||
*RISaveBlankSheet False/Off: "<</RISaveBlankSheet false >>setpagedevice"
|
||||
*RISaveBlankSheet True/On: "<</RISaveBlankSheet true >>setpagedevice"
|
||||
*CloseUI: *RISaveBlankSheet
|
||||
*CloseGroup: PrinterFunction
|
||||
|
||||
*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
|
||||
*Source: "USB"
|
||||
*Source: "EtherTalk"
|
||||
|
||||
|
||||
|
||||
*cupsLanguages: "ru"
|
||||
|
||||
*% === RU ===
|
||||
|
||||
*ru.Translation PageSize/Формат бумаги: ""
|
||||
*ru.PageSize A4/A4: ""
|
||||
*ru.PageSize A5/A5: ""
|
||||
*ru.PageSize A6/A6: ""
|
||||
*ru.PageSize B5/JIS B5: ""
|
||||
*ru.PageSize B6/JIS B6: ""
|
||||
*ru.PageSize Letter/US Letter: ""
|
||||
*ru.PageSize Executive/Executive: ""
|
||||
*ru.PageSize 16K/16K: ""
|
||||
|
||||
|
||||
*ru.Translation PageRegion/PageRegion: ""
|
||||
*ru.PageRegion A4/A4: ""
|
||||
*ru.PageRegion A5/A5: ""
|
||||
*ru.PageRegion A6/A6: ""
|
||||
*ru.PageRegion B5/JIS B5: ""
|
||||
*ru.PageRegion B6/JIS B6: ""
|
||||
*ru.PageRegion Letter/US Letter: ""
|
||||
*ru.PageRegion Executive/Executive: ""
|
||||
*ru.PageRegion 16K/16K: ""
|
||||
|
||||
*ru.Translation Graphics/Подробные настройки: ""
|
||||
*ru.Translation ColorModel/Цвет отпечатка: ""
|
||||
*ru.ColorModel Gray/Черный: ""
|
||||
|
||||
|
||||
*ru.Translation DrvResolution/Качество изображения: ""
|
||||
*ru.DrvResolution 600dpi/600 т/д: ""
|
||||
*ru.DrvResolution 1200dpi/1200 т/д: ""
|
||||
|
||||
*ru.Translation DrvDuplex/Двухсторонняя печать: ""
|
||||
*ru.DrvDuplex None/Односторонняя печать: ""
|
||||
*ru.DrvDuplex DrvDuplexNoTumble/Поворачивать по длинному краю: ""
|
||||
*ru.DrvDuplex DrvDuplexTumble/Поворачивать по короткому краю: ""
|
||||
|
||||
|
||||
*ru.Translation StpBrightness/Яркость: ""
|
||||
|
||||
*ru.Translation TonerMode/Режим экономии тонера: ""
|
||||
*ru.TonerMode 0/Выкл.: ""
|
||||
*ru.TonerMode 1/Вкл.: ""
|
||||
|
||||
|
||||
*ru.Translation ImageRotation/Поворот изображения: ""
|
||||
*ru.ImageRotation False/Выкл.: ""
|
||||
*ru.ImageRotation True/Вкл.: ""
|
||||
|
||||
|
||||
*ru.Translation ColorBalanceGroup/Цветовой баланс: ""
|
||||
*ru.Translation RIColorDensityBlackLow/Низкая плотность (K): ""
|
||||
*ru.RIColorDensityBlackLow 3/Темнее (+3): ""
|
||||
*ru.RIColorDensityBlackLow 2/Темнее (+2): ""
|
||||
*ru.RIColorDensityBlackLow 1/Темнее (+1): ""
|
||||
*ru.RIColorDensityBlackLow 0/Стандартно (0): ""
|
||||
*ru.RIColorDensityBlackLow -1/Светлее (-1): ""
|
||||
*ru.RIColorDensityBlackLow -2/Светлее (-2): ""
|
||||
*ru.RIColorDensityBlackLow -3/Светлее (-3): ""
|
||||
*ru.Translation RIColorDensityBlackMid/Средняя плотность (K): ""
|
||||
*ru.RIColorDensityBlackMid 3/Темнее (+3): ""
|
||||
*ru.RIColorDensityBlackMid 2/Темнее (+2): ""
|
||||
*ru.RIColorDensityBlackMid 1/Темнее (+1): ""
|
||||
*ru.RIColorDensityBlackMid 0/Стандартно (0): ""
|
||||
*ru.RIColorDensityBlackMid -1/Светлее (-1): ""
|
||||
*ru.RIColorDensityBlackMid -2/Светлее (-2): ""
|
||||
*ru.RIColorDensityBlackMid -3/Светлее (-3): ""
|
||||
*ru.Translation RIColorDensityBlackHigh/Высокая плотность (K): ""
|
||||
*ru.RIColorDensityBlackHigh 3/Темнее (+3): ""
|
||||
*ru.RIColorDensityBlackHigh 2/Темнее (+2): ""
|
||||
*ru.RIColorDensityBlackHigh 1/Темнее (+1): ""
|
||||
*ru.RIColorDensityBlackHigh 0/Стандартно (0): ""
|
||||
*ru.RIColorDensityBlackHigh -1/Светлее (-1): ""
|
||||
*ru.RIColorDensityBlackHigh -2/Светлее (-2): ""
|
||||
*ru.RIColorDensityBlackHigh -3/Светлее (-3): ""
|
||||
|
||||
*ru.Translation AdvancedMedia/Управление бумагой: ""
|
||||
*ru.Translation Collate/Разобрать по копиям: ""
|
||||
*ru.Collate False/Выкл.: ""
|
||||
*ru.Collate True/Вкл.: ""
|
||||
|
||||
*ru.Translation MediaType/Тип бумаги: ""
|
||||
*ru.MediaType Plain/Обычная: ""
|
||||
*ru.MediaType PlainThick/Обычная толстая: ""
|
||||
*ru.MediaType PlainThin/Обычная тонкая: ""
|
||||
*ru.MediaType Label/Этикетка: ""
|
||||
*ru.MediaType Recycled/Переработанная: ""
|
||||
|
||||
|
||||
*ru.Translation PrinterFunction/Параметры принтера: ""
|
||||
*ru.Translation RISaveBlankSheet/Пропускать пустые страницы: ""
|
||||
*ru.RISaveBlankSheet False/Выкл.: ""
|
||||
*ru.RISaveBlankSheet True/Вкл.: ""
|
||||
|
||||
|
||||
135
modules/sys/printing/cupsd.conf
Normal file
135
modules/sys/printing/cupsd.conf
Normal file
@@ -0,0 +1,135 @@
|
||||
LogLevel warn
|
||||
MaxLogSize 0
|
||||
ErrorPolicy stop-printer
|
||||
# Allow remote access
|
||||
Port 631
|
||||
Listen /run/cups/cups.sock
|
||||
# Share local printers on the local network.
|
||||
Browsing On
|
||||
BrowseLocalProtocols dnssd
|
||||
DefaultAuthType Basic
|
||||
WebInterface Yes
|
||||
IdleExitTimeout 60
|
||||
<Location />
|
||||
# Allow shared printing...
|
||||
Order allow,deny
|
||||
Allow all
|
||||
</Location>
|
||||
<Location /admin>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
</Location>
|
||||
<Location /admin/conf>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
</Location>
|
||||
<Location /admin/log>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
</Location>
|
||||
<Policy default>
|
||||
JobPrivateAccess default
|
||||
JobPrivateValues default
|
||||
SubscriptionPrivateAccess default
|
||||
SubscriptionPrivateValues default
|
||||
<Limit Create-Job Print-Job Print-URI Validate-Job>
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job>
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit CUPS-Get-Document>
|
||||
AuthType Default
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Cancel-Job>
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit CUPS-Authenticate-Job>
|
||||
AuthType Default
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit All>
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
</Policy>
|
||||
<Policy authenticated>
|
||||
JobPrivateAccess default
|
||||
JobPrivateValues default
|
||||
SubscriptionPrivateAccess default
|
||||
SubscriptionPrivateValues default
|
||||
<Limit Create-Job Print-Job Print-URI Validate-Job>
|
||||
AuthType Default
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
|
||||
AuthType Default
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Cancel-Job CUPS-Authenticate-Job>
|
||||
AuthType Default
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit All>
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
</Policy>
|
||||
<Policy kerberos>
|
||||
JobPrivateAccess default
|
||||
JobPrivateValues default
|
||||
SubscriptionPrivateAccess default
|
||||
SubscriptionPrivateValues default
|
||||
<Limit Create-Job Print-Job Print-URI Validate-Job>
|
||||
AuthType Negotiate
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
|
||||
AuthType Negotiate
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
|
||||
AuthType Default
|
||||
Require user @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit Cancel-Job CUPS-Authenticate-Job>
|
||||
AuthType Negotiate
|
||||
Require user @OWNER @SYSTEM
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
<Limit All>
|
||||
Order deny,allow
|
||||
</Limit>
|
||||
</Policy>
|
||||
32
modules/sys/printing/default.nix
Normal file
32
modules/sys/printing/default.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = with lib; {
|
||||
services.printing = {
|
||||
ricoh = {
|
||||
enable = mkEnableOption "Enable Ricoh Printer";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.services.printing.enable {
|
||||
virtualisation.oci-containers.containers = lib.mkIf config.services.printing.ricoh.enable {
|
||||
ricoh = {
|
||||
image = "ricoh-cups:latest";
|
||||
autoStart = true;
|
||||
extraOptions = [
|
||||
"--device=/dev/bus/usb/005"
|
||||
"--network=host"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
631
|
||||
];
|
||||
};
|
||||
}
|
||||
24
modules/sys/printing/printers.conf
Normal file
24
modules/sys/printing/printers.conf
Normal file
@@ -0,0 +1,24 @@
|
||||
# Printer configuration file for CUPS v2.4.11
|
||||
# Written by cupsd
|
||||
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
|
||||
NextPrinterId 2
|
||||
<Printer RICOH_SP_150SU>
|
||||
PrinterId 1
|
||||
UUID urn:uuid:6a1e1442-eced-3a35-69bc-92de4802890b
|
||||
Info RICOH SP 150SU
|
||||
Location
|
||||
MakeModel RICOH SP 150 v1.022
|
||||
DeviceURI usb://RICOH/SP%20150SU?serial=Y076M502861&interface=1
|
||||
State Idle
|
||||
StateTime 1738919335
|
||||
ConfigTime 1738919327
|
||||
Type 37060
|
||||
Accepting Yes
|
||||
Shared Yes
|
||||
JobSheets none none
|
||||
QuotaPeriod 0
|
||||
PageLimit 0
|
||||
KLimit 0
|
||||
OpPolicy default
|
||||
ErrorPolicy stop-printer
|
||||
</Printer>
|
||||
Binary file not shown.
40
nix.nix
Normal file
40
nix.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
nix = {
|
||||
gc = with lib; {
|
||||
automatic = mkDefault true;
|
||||
dates = mkDefault "19:00";
|
||||
persistent = mkDefault true;
|
||||
options = mkDefault "--delete-older-than 14d";
|
||||
};
|
||||
|
||||
settings = with lib; {
|
||||
substituters = lib.mkForce [
|
||||
"https://nixos-cache-proxy.cofob.dev"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://devenv.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
];
|
||||
|
||||
accept-flake-config = true;
|
||||
auto-optimise-store = mkDefault true;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
log-lines = 30;
|
||||
min-free = mkDefault "${toString (5 * 1024 * 1024 * 1024)}";
|
||||
max-free = mkDefault "${toString (10 * 1024 * 1024 * 1024)}";
|
||||
max-jobs = mkDefault 10;
|
||||
trusted-users = [
|
||||
"root"
|
||||
"@wheel"
|
||||
];
|
||||
warn-dirty = true;
|
||||
sandbox-dev-shm-size = "70%";
|
||||
};
|
||||
};
|
||||
}
|
||||
14
options.nix
Normal file
14
options.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
options = {
|
||||
swappiness = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 10;
|
||||
};
|
||||
|
||||
hm = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.anything;
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
8
quirks/32bit.nix
Normal file
8
quirks/32bit.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
{
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable32Bit = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
1
quirks/default.nix
Normal file
1
quirks/default.nix
Normal file
@@ -0,0 +1 @@
|
||||
{ quirks, ... }: map (quirk: ./${quirk}.nix) quirks
|
||||
6
quirks/development.nix
Normal file
6
quirks/development.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{...}:
|
||||
{
|
||||
boot.kernel.sysctl = {
|
||||
"fs.inotify.max_user_watches" = 1048576;
|
||||
};
|
||||
}
|
||||
6
quirks/steam.nix
Normal file
6
quirks/steam.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }:
|
||||
{
|
||||
hardware = {
|
||||
steam-hardware.enable = true;
|
||||
};
|
||||
}
|
||||
131
roles/default.nix
Normal file
131
roles/default.nix
Normal file
@@ -0,0 +1,131 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
systemd = {
|
||||
oomd = {
|
||||
enable = true;
|
||||
enableUserSlices = lib.mkDefault true;
|
||||
enableSystemSlice = lib.mkDefault true;
|
||||
extraConfig = {
|
||||
DefaultMemoryPressureDurationSec = lib.mkDefault "20s";
|
||||
DefaultMemoryPressureLimit = lib.mkDefault "50%";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
boot.kernel.sysctl = {
|
||||
"vm.swappiness" = config.swappiness;
|
||||
};
|
||||
|
||||
networking = {
|
||||
domain = lib.mkDefault "fxnet";
|
||||
search = [
|
||||
config.networking.domain
|
||||
];
|
||||
hosts = {
|
||||
"192.168.1.5" = [
|
||||
"nas.fxnet"
|
||||
"radicale.fxnet"
|
||||
];
|
||||
};
|
||||
firewall = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
iproute2.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh = {
|
||||
enable = lib.mkDefault true;
|
||||
settings = {
|
||||
PermitRootLogin = lib.mkDefault "prohibit-password";
|
||||
PasswordAuthentication = lib.mkDefault false;
|
||||
AllowGroups = [
|
||||
"ssh"
|
||||
"root"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
timesyncd.servers = [
|
||||
"192.168.1.1"
|
||||
"0.nixos.pool.ntp.org"
|
||||
];
|
||||
|
||||
btrfs.autoScrub = {
|
||||
enable = lib.mkDefault true;
|
||||
interval = lib.mkDefault "monthly";
|
||||
fileSystems = [
|
||||
"/"
|
||||
"/nix"
|
||||
"/home"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
nix-index = {
|
||||
enable = true;
|
||||
enableFishIntegration = config.programs.fish.enable;
|
||||
enableZshIntegration = config.programs.zsh.enable;
|
||||
enableBashIntegration = config.programs.bash.enable;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
linux-firmware
|
||||
git
|
||||
wget
|
||||
curl
|
||||
htop
|
||||
gnumake
|
||||
neovim
|
||||
|
||||
# archives
|
||||
zip
|
||||
xz
|
||||
unzip
|
||||
p7zip
|
||||
|
||||
# utils
|
||||
ripgrep # recursively searches directories for a regex pattern
|
||||
jq # A lightweight and flexible command-line JSON processor
|
||||
|
||||
# networking tools
|
||||
mtr # A network diagnostic tool
|
||||
ldns # replacement of `dig`, it provide the command `drill`
|
||||
aria2 # A lightweight multi-protocol & multi-source command-line download utility
|
||||
socat # replacement of openbsd-netcat
|
||||
nmap # A utility for network discovery and security auditing
|
||||
ipcalc # it is a calculator for the IPv4/v6 addresses
|
||||
|
||||
# misc
|
||||
file
|
||||
which
|
||||
tree
|
||||
gnused
|
||||
gnutar
|
||||
gawk
|
||||
zstd
|
||||
gnupg
|
||||
bc
|
||||
|
||||
# btop # replacement of htop/nmon
|
||||
iotop # io monitoring
|
||||
iftop # network monitoring
|
||||
|
||||
# system call monitoring
|
||||
strace # system call monitoring
|
||||
ltrace # library call monitoring
|
||||
lsof # list open files
|
||||
|
||||
cifs-utils
|
||||
|
||||
age
|
||||
sops
|
||||
];
|
||||
}
|
||||
197
roles/desktop.nix
Normal file
197
roles/desktop.nix
Normal file
@@ -0,0 +1,197 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
specialisations = builtins.map (name: ../specialisations + "/${name}") (
|
||||
builtins.attrNames (builtins.readDir ../specialisations)
|
||||
);
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./default.nix
|
||||
]
|
||||
++ specialisations;
|
||||
|
||||
swappiness = lib.mkDefault 20;
|
||||
|
||||
boot = {
|
||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||
tmp = {
|
||||
cleanOnBoot = lib.mkDefault true;
|
||||
tmpfsSize = lib.mkDefault "50%";
|
||||
useTmpfs = lib.mkDefault true;
|
||||
};
|
||||
|
||||
consoleLogLevel = lib.mkDefault 1;
|
||||
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = lib.mkDefault true;
|
||||
configurationLimit = lib.mkDefault 10;
|
||||
};
|
||||
|
||||
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware = {
|
||||
enableRedistributableFirmware = lib.mkDefault true;
|
||||
bluetooth = {
|
||||
enable = lib.mkDefault true;
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
IdleTimeout = 0;
|
||||
ControllerMode = "dual";
|
||||
MultiProfile = "multiple";
|
||||
FastConnectable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager = {
|
||||
enable = lib.mkDefault true;
|
||||
plugins = lib.mkForce [ ];
|
||||
};
|
||||
firewall = {
|
||||
enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "ru_RU.UTF-8";
|
||||
supportedLocales = [
|
||||
"en_US.UTF-8/UTF-8"
|
||||
"ru_RU.UTF-8/UTF-8"
|
||||
];
|
||||
};
|
||||
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
|
||||
sudo = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
Defaults:root,%wheel env_keep=HTTPS_PROXY
|
||||
Defaults:root,%wheel env_keep=no_proxy
|
||||
'';
|
||||
};
|
||||
|
||||
pam = {
|
||||
yubico.enable = true;
|
||||
yubico.mode = "challenge-response";
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
pulseaudio.enable = false;
|
||||
pcscd.enable = true;
|
||||
resolved = {
|
||||
enable = true;
|
||||
fallbackDns = [
|
||||
# "192.168.1.5"
|
||||
"1.1.1.1"
|
||||
"8.8.8.8"
|
||||
];
|
||||
};
|
||||
|
||||
pipewire = {
|
||||
wireplumber.enable = true;
|
||||
audio.enable = true;
|
||||
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
libinput.enable = true;
|
||||
|
||||
btrfs.autoScrub.interval = "weekly";
|
||||
|
||||
flatpak.enable = true;
|
||||
|
||||
printing = {
|
||||
enable = lib.mkDefault true;
|
||||
openFirewall = true;
|
||||
drivers = with pkgs; [
|
||||
gutenprint
|
||||
];
|
||||
cups-pdf.enable = true;
|
||||
browsing = lib.mkDefault true;
|
||||
};
|
||||
|
||||
udev = {
|
||||
extraRules = ''
|
||||
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
users.groups = {
|
||||
ssh = {
|
||||
name = "ssh";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
mesa
|
||||
steam-run
|
||||
|
||||
obsidian
|
||||
telegram-desktop
|
||||
keepassxc
|
||||
gimp
|
||||
mpv
|
||||
ffmpeg
|
||||
yt-dlp
|
||||
avidemux
|
||||
krita
|
||||
krita-plugin-gmic
|
||||
|
||||
# onlyoffice-desktopeditors
|
||||
libreoffice-qt-fresh
|
||||
thunderbird-latest
|
||||
|
||||
# Fonts
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
|
||||
programs = {
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
yubikey-touch-detector = {
|
||||
enable = config.security.pam.yubico.enable;
|
||||
libnotify = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.pathsToLink = [
|
||||
"/share/xdg-desktop-portal"
|
||||
"/share/applications"
|
||||
];
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
}
|
||||
8
roles/laptop.nix
Normal file
8
roles/laptop.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{...}:
|
||||
{
|
||||
imports = [
|
||||
./desktop.nix
|
||||
];
|
||||
|
||||
powerManagement.powertop.enable = true;
|
||||
}
|
||||
7
roles/server.nix
Normal file
7
roles/server.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./default.nix
|
||||
];
|
||||
|
||||
}
|
||||
42
specialisations/default.nix
Normal file
42
specialisations/default.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services = {
|
||||
desktopManager = {
|
||||
plasma6.enable = true;
|
||||
};
|
||||
displayManager = {
|
||||
sddm = {
|
||||
enable = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs.kdePackages; [
|
||||
yakuake
|
||||
spectacle
|
||||
elisa
|
||||
dolphin-plugins
|
||||
xwaylandvideobridge
|
||||
];
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
kde-pim.enable = false;
|
||||
};
|
||||
|
||||
xdg.portal.config.common = {
|
||||
default = lib.mkDefault [
|
||||
"kde"
|
||||
];
|
||||
};
|
||||
|
||||
xdg.portal.extraPortals = lib.mkDefault [
|
||||
pkgs.kdePackages.xdg-desktop-portal-kde
|
||||
];
|
||||
}
|
||||
61
specialisations/gnome.nix
Normal file
61
specialisations/gnome.nix
Normal file
@@ -0,0 +1,61 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
specialisation.gnome.configuration = {
|
||||
system.nixos.tags = [ "gnome" ];
|
||||
services = {
|
||||
displayManager = {
|
||||
defaultSession = lib.mkForce "gnome";
|
||||
sddm.enable = lib.mkForce false;
|
||||
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
autoSuspend = true;
|
||||
banner = ''
|
||||
Оставь надежду
|
||||
Всяк сюда входящий
|
||||
'';
|
||||
};
|
||||
};
|
||||
desktopManager = {
|
||||
plasma6.enable = lib.mkForce false;
|
||||
gnome.enable = true;
|
||||
};
|
||||
|
||||
hardware.bolt.enable = true;
|
||||
gnome = {
|
||||
core-os-services.enable = true;
|
||||
gnome-keyring.enable = true;
|
||||
gnome-settings-daemon.enable = true;
|
||||
core-shell.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.evolution = {
|
||||
enable = true;
|
||||
plugins = [ pkgs.evolution-ews ];
|
||||
};
|
||||
|
||||
environment = {
|
||||
variables = {
|
||||
XCURSOR_THEME = "Adwaita";
|
||||
};
|
||||
gnome.excludePackages = with pkgs; [
|
||||
geary
|
||||
epiphany
|
||||
gnome-calendar
|
||||
];
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
config.common = {
|
||||
default = lib.mkForce [
|
||||
"gnome"
|
||||
];
|
||||
};
|
||||
extraPortals = lib.mkForce [
|
||||
pkgs.kdePackages.xdg-desktop-portal-kde
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user