From 34de78bee0873a4ad68a745b10c2c553b25ef93c Mon Sep 17 00:00:00 2001 From: Fugi Date: Fri, 30 Jun 2023 13:57:21 +0200 Subject: [PATCH 01/14] Serve public_html directory --- flake.nix | 1 + modules/userdir.nix | 53 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 modules/userdir.nix diff --git a/flake.nix b/flake.nix index 04919d3..03781af 100755 --- a/flake.nix +++ b/flake.nix @@ -45,6 +45,7 @@ ./modules/mail.nix ./modules/mailman.nix ./modules/nginx.nix + ./modules/userdir.nix ./modules/hedgedoc.nix ./modules/wiki.nix ./modules/ftp.nix diff --git a/modules/userdir.nix b/modules/userdir.nix new file mode 100644 index 0000000..b30c6ff --- /dev/null +++ b/modules/userdir.nix @@ -0,0 +1,53 @@ +{ config, lib, pkgs, ... }: +let + domain = "users.${config.fsr.domain}"; + port = 8083; + apacheUser = config.services.httpd.user; +in +{ + # home directory setup + systemd.tmpfiles.rules = [ + "d /etc/skel" + ]; + environment.extraInit = /*sh*/ '' + if [[ "$HOME" != "/" && "$UID" != 0 ]]; then + umask 002 + + # home dir: apache may traverse only, creation mode is rw(x)------ + setfacl -m u:${apacheUser}:x,d:u::rwx,d:g::-,d:o::- $HOME + + mkdir -p $HOME/public_html + # public_html dir: apache and $USER have rwx on everything inside + setfacl -m u:${apacheUser}:rwx,d:u:${apacheUser}:rwx,d:u:$USER:rwx $HOME/public_html + fi + ''; + + services.httpd = { + enable = true; + enablePHP = true; + + virtualHosts.${domain} = { + enableUserDir = true; + extraConfig = '' + + Options -Indexes + DirectoryIndex index.php index.html + AllowOverride FileInfo AuthConfig Limit Indexes Options=Indexes + + ''; + listen = [{ + ip = "127.0.0.1"; + inherit port; + }]; + }; + }; + + services.nginx.virtualHosts.${domain} = { + enableACME = true; + forceSSL = true; + + locations."/" = { + proxyPass = "http://localhost:${toString port}"; + }; + }; +} From 8b3e42dbb6710ab2e1a06ea42bc25db33d58e193 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 4 Jul 2023 14:54:59 +0200 Subject: [PATCH 02/14] disable mail forwarding --- modules/sogo.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/sogo.nix b/modules/sogo.nix index 5432c6a..9eeefb9 100644 --- a/modules/sogo.nix +++ b/modules/sogo.nix @@ -39,7 +39,6 @@ in SOGoSieveServer = sieve://127.0.0.1:4190; SOGoSieveScriptsEnabled = YES; SOGoVacationEnabled = YES; - SOGoForwardEnabled = YES; ''; configReplaces = { "LDAP_SEARCH" = config.sops.secrets.ldap_search.path; From 0d7a9738b0942d6216ba1c11485909b89d186afd Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 4 Jul 2023 15:10:00 +0200 Subject: [PATCH 03/14] manually patch the portunus regex --- flake.nix | 4 +-- .../0001-update-user-validation-regex.patch | 25 +++++++++++++++++++ modules/{ldap.nix => ldap/default.nix} | 23 +++++++---------- 3 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 modules/ldap/0001-update-user-validation-regex.patch rename modules/{ldap.nix => ldap/default.nix} (86%) diff --git a/flake.nix b/flake.nix index 04919d3..86b419c 100755 --- a/flake.nix +++ b/flake.nix @@ -40,7 +40,7 @@ ./modules/options.nix ./modules/base.nix ./modules/sops.nix - ./modules/ldap.nix + ./modules/ldap # ./modules/keycloak.nix replaced by portunus ./modules/mail.nix ./modules/mailman.nix @@ -67,7 +67,7 @@ ./hosts/quitte/configuration.nix ./modules/options.nix ./modules/base.nix - ./modules/ldap.nix + ./modules/ldap # ./modules/keycloak.nix replaced by portunus ./modules/nginx.nix ./modules/mail.nix diff --git a/modules/ldap/0001-update-user-validation-regex.patch b/modules/ldap/0001-update-user-validation-regex.patch new file mode 100644 index 0000000..7911cdf --- /dev/null +++ b/modules/ldap/0001-update-user-validation-regex.patch @@ -0,0 +1,25 @@ +From a3fb0c82f09db0b5655c949d5e4dbea55279ff10 Mon Sep 17 00:00:00 2001 +From: Rouven Seifert +Date: Tue, 4 Jul 2023 15:02:02 +0200 +Subject: [PATCH] update user validation regex + +--- + internal/core/validation.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/internal/core/validation.go b/internal/core/validation.go +index 3be9dfa..b1368a7 100644 +--- a/internal/core/validation.go ++++ b/internal/core/validation.go +@@ -30,7 +30,7 @@ import ( + ) + + // this regexp copied from useradd(8) manpage +-const posixAccountNamePattern = `[a-z_][a-z0-9_-]*\$?` ++const posixAccountNamePattern = `[a-z_][a-z0-9._-]*\$?` + + var ( + errIsMissing = errors.New("is missing") +-- +2.41.0 + diff --git a/modules/ldap.nix b/modules/ldap/default.nix similarity index 86% rename from modules/ldap.nix rename to modules/ldap/default.nix index 66bf2e9..6d19618 100644 --- a/modules/ldap.nix +++ b/modules/ldap/default.nix @@ -65,7 +65,7 @@ in #tls = true; }; - seedPath = ../config/portunus_seeds.json; + seedPath = ../../config/portunus_seeds.json; }; #users.ldap = { @@ -124,17 +124,12 @@ in }; }; - # nixpkgs.overlays = [ - # (self: super: - # { - # portunus = super.portunus.overrideAttrs (old: { - # src = super.fetchFromGitHub { - # owner = "revol-xut"; - # repo = "portunus"; - # rev = "4dc29febacb11c613785bc95352fa00e0ca9b14a"; - # sha256 = "sha256-6O2392aHXhgvgZf6ftDY5Bh6hG3OzzCnlriig/Vkkz8="; - # }; - # }); - # }) - # ]; + nixpkgs.overlays = [ + (self: super: + { + portunus = super.portunus.overrideAttrs (old: { + patches = [ ./0001-update-user-validation-regex.patch ]; + }); + }) + ]; } From 5136effd168fe1acf0daee243254b233256d1b73 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 4 Jul 2023 15:15:58 +0200 Subject: [PATCH 04/14] fix the portunus pach --- modules/ldap/0001-update-user-validation-regex.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/ldap/0001-update-user-validation-regex.patch b/modules/ldap/0001-update-user-validation-regex.patch index 7911cdf..6ae40f9 100644 --- a/modules/ldap/0001-update-user-validation-regex.patch +++ b/modules/ldap/0001-update-user-validation-regex.patch @@ -1,6 +1,6 @@ -From a3fb0c82f09db0b5655c949d5e4dbea55279ff10 Mon Sep 17 00:00:00 2001 +From f5c68898be345fb0dca5ab7b596b9cbe674f5dfb Mon Sep 17 00:00:00 2001 From: Rouven Seifert -Date: Tue, 4 Jul 2023 15:02:02 +0200 +Date: Tue, 4 Jul 2023 15:14:00 +0200 Subject: [PATCH] update user validation regex --- @@ -8,13 +8,13 @@ Subject: [PATCH] update user validation regex 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/core/validation.go b/internal/core/validation.go -index 3be9dfa..b1368a7 100644 +index 3e168b5..10dfc0a 100644 --- a/internal/core/validation.go +++ b/internal/core/validation.go @@ -30,7 +30,7 @@ import ( ) - // this regexp copied from useradd(8) manpage + //this regexp copied from useradd(8) manpage -const posixAccountNamePattern = `[a-z_][a-z0-9_-]*\$?` +const posixAccountNamePattern = `[a-z_][a-z0-9._-]*\$?` From d94a77d35c39fb297b0cd0d033fbf23617e0c903 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 4 Jul 2023 15:56:50 +0200 Subject: [PATCH 05/14] configure kpp --- flake.nix | 6 +++++- modules/kpp.nix | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 modules/kpp.nix diff --git a/flake.nix b/flake.nix index 04919d3..55f9fbe 100755 --- a/flake.nix +++ b/flake.nix @@ -3,9 +3,11 @@ nixpkgs.url = github:nixos/nixpkgs/nixos-23.05; sops-nix.url = github:Mic92/sops-nix; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; + kpp.url = "github:fsr/kpp"; + kpp.inputs.nixpkgs.follows = "nixpkgs"; # fsr-infoscreen.url = github:fsr/infoscreen; # some anonymous strukturer accidentally removed the flake.nix }; - outputs = { self, nixpkgs, sops-nix, ... }@inputs: + outputs = { self, nixpkgs, sops-nix, kpp, ... }@inputs: { #packages."aarch64-linux".sanddorn = self.nixosConfigurations.sanddorn.config.system.build.sdImage; packages."x86_64-linux".quitte = self.nixosConfigurations.quitte-vm.config.system.build.vm; @@ -36,11 +38,13 @@ system = "x86_64-linux"; modules = [ inputs.sops-nix.nixosModules.sops + inputs.kpp.nixosModules.default ./hosts/quitte/configuration.nix ./modules/options.nix ./modules/base.nix ./modules/sops.nix ./modules/ldap.nix + ./modules/kpp.nix # ./modules/keycloak.nix replaced by portunus ./modules/mail.nix ./modules/mailman.nix diff --git a/modules/kpp.nix b/modules/kpp.nix new file mode 100644 index 0000000..7767711 --- /dev/null +++ b/modules/kpp.nix @@ -0,0 +1,15 @@ +{ config, ... }: +let + domain = "kpp.${config.fsr.domain}"; +in +{ + services.kpp = { + enable = true; + hostName = domain; + }; + services.nginx.virtualHosts."${domain}" = { + enableACME = true; + forceSSL = true; + }; + +} From fdc5d31442b1d661ae9c21127644606e51517c6b Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 4 Jul 2023 16:10:53 +0200 Subject: [PATCH 06/14] update input --- flake.lock | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/flake.lock b/flake.lock index ae76547..97e3e93 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "kpp": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688479784, + "narHash": "sha256-xCI0Q8pQK5JRHYwieQApHmLseuXLiHnsYVlxUVKLCQA=", + "owner": "fsr", + "repo": "kpp", + "rev": "bf78c8481cbd1a43a122da90a63bbd0ed257b244", + "type": "github" + }, + "original": { + "owner": "fsr", + "repo": "kpp", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1685004253, @@ -34,6 +54,7 @@ }, "root": { "inputs": { + "kpp": "kpp", "nixpkgs": "nixpkgs", "sops-nix": "sops-nix" } From d5e881c63905c1253401efb0c651351166380d6b Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 4 Jul 2023 17:06:18 +0200 Subject: [PATCH 07/14] use portunus.package to override --- modules/ldap/default.nix | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/modules/ldap/default.nix b/modules/ldap/default.nix index 6d19618..d62c963 100644 --- a/modules/ldap/default.nix +++ b/modules/ldap/default.nix @@ -48,6 +48,9 @@ in services.portunus = { enable = true; + package = pkgs.portunus.overrideAttrs (old: { + patches = [ ./0001-update-user-validation-regex.patch ]; + }); user = "${portunusUser}"; group = "${portunusGroup}"; domain = "${domain}"; @@ -123,13 +126,4 @@ in }; }; }; - - nixpkgs.overlays = [ - (self: super: - { - portunus = super.portunus.overrideAttrs (old: { - patches = [ ./0001-update-user-validation-regex.patch ]; - }); - }) - ]; } From 1d9359416d7530a77a27ee5718ac3034870286a8 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Wed, 5 Jul 2023 16:21:20 +0200 Subject: [PATCH 08/14] add postmaster alias --- modules/mail.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/mail.nix b/modules/mail.nix index 72029de..fd1c09d 100644 --- a/modules/mail.nix +++ b/modules/mail.nix @@ -47,6 +47,7 @@ in extraAliases = '' # Taken from kaki, maybe we can throw out some at some point # General redirections for pseudo accounts + postmaster: root bin: root daemon: root named: root From 0165a0ad2daeb53b2803208ff87dd4cfc67adc9f Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Wed, 5 Jul 2023 17:15:24 +0200 Subject: [PATCH 09/14] removed some unneeded files --- flake.nix | 22 - hosts/sanddorn/configuration.nix | 46 - hosts/sanddorn/hardware-configuration.nix | 48 - hosts/tomate/.gitkeep | 0 miscellaneous/Kyocera ECOSYS M6630cidn.ppd | 1271 -------------------- modules/desktop.nix | 42 - modules/infoscreen.nix | 29 - pkgs/server.nix | 75 -- 8 files changed, 1533 deletions(-) delete mode 100644 hosts/sanddorn/configuration.nix delete mode 100644 hosts/sanddorn/hardware-configuration.nix delete mode 100755 hosts/tomate/.gitkeep delete mode 100755 miscellaneous/Kyocera ECOSYS M6630cidn.ppd delete mode 100755 modules/desktop.nix delete mode 100644 modules/infoscreen.nix delete mode 100755 pkgs/server.nix diff --git a/flake.nix b/flake.nix index 86b419c..8398912 100755 --- a/flake.nix +++ b/flake.nix @@ -3,35 +3,14 @@ nixpkgs.url = github:nixos/nixpkgs/nixos-23.05; sops-nix.url = github:Mic92/sops-nix; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; - # fsr-infoscreen.url = github:fsr/infoscreen; # some anonymous strukturer accidentally removed the flake.nix }; outputs = { self, nixpkgs, sops-nix, ... }@inputs: { - #packages."aarch64-linux".sanddorn = self.nixosConfigurations.sanddorn.config.system.build.sdImage; packages."x86_64-linux".quitte = self.nixosConfigurations.quitte-vm.config.system.build.vm; packages."x86_64-linux".default = self.packages."x86_64-linux".quitte; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt; nixosConfigurations = { - sanddorn = nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - modules = [ - { - # nixpkgs.overlays = [ fsr-infoscreen.overlay."aarch64-linux" ]; - nixpkgs.config.allowBroken = true; - sdImage.compressImage = false; - } - ./hosts/sanddorn/configuration.nix - # ./modules/infoscreen.nix - ./modules/base.nix - ./modules/desktop.nix - ./modules/options.nix - "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" - { - fsr.enable_office_bloat = false; - } - ]; - }; quitte = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -68,7 +47,6 @@ ./modules/options.nix ./modules/base.nix ./modules/ldap - # ./modules/keycloak.nix replaced by portunus ./modules/nginx.nix ./modules/mail.nix ./modules/mailman.nix diff --git a/hosts/sanddorn/configuration.nix b/hosts/sanddorn/configuration.nix deleted file mode 100644 index 153d6b1..0000000 --- a/hosts/sanddorn/configuration.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - boot = { - loader = { - grub.enable = false; - raspberryPi = { - enable = true; - version = 3; - uboot.enable = true; - }; - }; - kernelPackages = pkgs.linuxPackages_latest; - # No ZFS on latest kernel: - tmp.useTmpfs = true; - }; - - nix = { - settings.auto-optimise-store = true; - }; - - - networking = { - hostName = "sanddorn"; - - useDHCP = false; - interfaces.eth0.useDHCP = true; - interfaces.wlan0.useDHCP = true; - firewall.enable = false; - }; - - programs.tmux.enable = true; - - # Do not log to flash: - services.journald.extraConfig = '' - Storage=volatile - ''; - - security.sudo = { - enable = true; - wheelNeedsPassword = false; - }; - - documentation.enable = false; - - system.stateVersion = "21.05"; -} diff --git a/hosts/sanddorn/hardware-configuration.nix b/hosts/sanddorn/hardware-configuration.nix deleted file mode 100644 index b88abb6..0000000 --- a/hosts/sanddorn/hardware-configuration.nix +++ /dev/null @@ -1,48 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - #imports = - # [ (modulesPath + "/installer/scan/not-detected.nix") - # ]; - - boot.initrd.availableKernelModules = [ "usbhid" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - boot.kernelParams = [ "snd_bcm2835.enable_headphones=1" ]; - boot.blacklistedKernelModules = [ "vc4_hdmi" ]; - - fileSystems = { - "/boot" = { - device = "/dev/disk/by-label/FIRMWARE"; - fsType = "vfat"; - }; - "/swap" = { - device = "/dev/disk/by-uuid/SWAP"; - fsType = "btrfs"; - options = [ "subvol=swap" "compress=lzo" "noatime" ]; # Note these options effect the entire BTRFS filesystem and not just this volume, with the exception of `"subvol=swap"`, the other options are repeated in my other `fileSystem` mounts - }; - "/" = { - device = "/dev/disk/by-label/NIXOS_SD"; - fsType = "ext4"; - }; - }; - - swapDevices = [{ - device = "/swap/swapfile"; - size = (1024 * 2); - }]; - - hardware.enableRedistributableFirmware = true; - #networking.wireless.enable = true; - boot.loader.raspberryPi.firmwareConfig = '' - gpu_mem=192 - dtparam=audio=on - ''; - - powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; -} - diff --git a/hosts/tomate/.gitkeep b/hosts/tomate/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/miscellaneous/Kyocera ECOSYS M6630cidn.ppd b/miscellaneous/Kyocera ECOSYS M6630cidn.ppd deleted file mode 100755 index 453c08c..0000000 --- a/miscellaneous/Kyocera ECOSYS M6630cidn.ppd +++ /dev/null @@ -1,1271 +0,0 @@ -*PPD-Adobe: "4.3" -*%============================================================================= -*% -*% PPD file for Kyocera ECOSYS M6630cidn (German) -*% -*% (C) 2017 KYOCERA Document Solutions Inc. -*% -*% -*% Permission is granted for redistribution of this file as long as this -*% copyright notice is intact and the contents of the file are not altered -*% in any way from their original form. -*% -*% Permission is hereby granted, free of charge, to any person obtaining -*% a copy of this software and associated documentation files (the -*% "Software"), to deal in the Software without restriction, including -*% without limitation the rights to use, copy, modify, merge, publish, -*% distribute, sublicense, and/or sell copies of the Software, and to -*% permit persons to whom the Software is furnished to do so, subject to -*% the following conditions: -*% -*% The above copyright notice and this permission notice shall be -*% included in all copies or substantial portions of the Software. -*% -*% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -*% EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -*% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -*% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -*% LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -*% OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -*% WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*% -*% [this is the MIT open source license -- see www.opensource.org] -*% -*%============================================================================= - -*FileVersion: "8.1710" -*FormatVersion: "4.3" -*LanguageEncoding: ISOLatin1 -*LanguageVersion: German -*Product: "(ECOSYS M6630cidn)" -*PSVersion: "(3011.103) 1" -*Manufacturer: "Kyocera" -*ModelName: "Kyocera ECOSYS M6630cidn KPDL" -*ShortNickName: "Kyocera ECOSYS M6630cidn (KPDL)" -*NickName: "Kyocera ECOSYS M6630cidn (KPDL)" -*PCFileName: "EC6630BG.PPD" - -*% Basic Device Capabilities -*LanguageLevel: "3" -*ColorDevice: True -*DefaultColorSpace: CMYK -*ContoneOnly: False -*AccurateScreensSupport: True -*TTRasterizer: Type42 -*?TTRasterizer: " - save - 42 /FontType resourcestatus - { pop pop (Type42) }{ (None) } ifelse - = flush restore" -*End - -*Throughput: "30" - -*% System Management -*SuggestedJobTimeout: "0" -*SuggestedManualFeedTimeout: "0" -*SuggestedWaitTimeout: "120" -*PrintPSErrors: True - -*Password: "0" - -*ExitServer: " - count 0 eq {true} - {dup statusdict /checkpassword get exec not} ifelse - {(WARNING : Cannot perform the exitserver command.) = - (Password supplied is not valid.) = - (Please contact the author of this software.) = flush quit} if - serverdict /exitserver get exec" -*End - -*Reset: " - count 0 eq { true } - {dup statusdict /checkpassword get exec not} ifelse - {(WARNING : Cannot perform the exitserver command.) = - (Password supplied is not valid.) = - (Please contact the author of this software.) = flush quit} if - serverdict /exitserver get exec - systemdict /quit get exec - (WARNING : Printer Reset Failed.) = flush" -*End - -*% Protocols -*Protocols: PJL TBCP - -*1284Modes Parallel: Compat Nibble ECP -*1284DeviceID: "MFG:Kyocera;MODEL:Kyocera ECOSYS M6630cidn;COMMAND SET: POSTSCRIPT,PJL,PCL" - -*% JCL Information -*JCLBegin: "<1B>%-12345X@PJL JOB<0A>" -*JCLToPSInterpreter: "@PJL ENTER LANGUAGE=POSTSCRIPT<0A>" -*JCLEnd: "<1B>%-12345X@PJL EOJ<0A><1B>%-12345X" - -*JCLOpenUI *JCLTrapping/berfllen: PickOne -*DefaultJCLTrapping: Medium -*OrderDependency: 6 JCLSetup *JCLTrapping -*JCLTrapping Off/Aus: "@PJL SET KTRAPPING=0<0A>" -*JCLTrapping Light/Hell: "@PJL SET KTRAPPING=1<0A>" -*JCLTrapping Medium/Mittel: "@PJL SET KTRAPPING=2<0A>" -*JCLTrapping Heavy/Dunkel: "@PJL SET KTRAPPING=3<0A>" -*JCLTrapping VeryHeavy/Sehr dunkel: "@PJL SET KTRAPPING=4<0A>" -*JCLCloseUI: *JCLTrapping - -*JCLOpenUI *JCLRedLevel/RGB-Wert (Rot): PickOne -*DefaultJCLRedLevel: None -*OrderDependency: 8 JCLSetup *JCLRedLevel -*JCLRedLevel None/Normal: "!R!RGBL0,0;" -*JCLRedLevel Minus10/-10: "!R!RGBL0,-10;" -*JCLRedLevel Minus9/-9: "!R!RGBL0,-9;" -*JCLRedLevel Minus8/-8: "!R!RGBL0,-8;" -*JCLRedLevel Minus7/-7: "!R!RGBL0,-7;" -*JCLRedLevel Minus6/-6: "!R!RGBL0,-6;" -*JCLRedLevel Minus5/-5: "!R!RGBL0,-5;" -*JCLRedLevel Minus4/-4: "!R!RGBL0,-4;" -*JCLRedLevel Minus3/-3: "!R!RGBL0,-3;" -*JCLRedLevel Minus2/-2: "!R!RGBL0,-2;" -*JCLRedLevel Minus1/-1: "!R!RGBL0,-1;" -*JCLRedLevel Plus1/+1: "!R!RGBL0,1;" -*JCLRedLevel Plus2/+2: "!R!RGBL0,2;" -*JCLRedLevel Plus3/+3: "!R!RGBL0,3;" -*JCLRedLevel Plus4/+4: "!R!RGBL0,4;" -*JCLRedLevel Plus5/+5: "!R!RGBL0,5;" -*JCLRedLevel Plus6/+6: "!R!RGBL0,6;" -*JCLRedLevel Plus7/+7: "!R!RGBL0,7;" -*JCLRedLevel Plus8/+8: "!R!RGBL0,8;" -*JCLRedLevel Plus9/+9: "!R!RGBL0,9;" -*JCLRedLevel Plus10/+10: "!R!RGBL0,10;" -*JCLCloseUI: *JCLRedLevel - -*JCLOpenUI *JCLGreenLevel/RGB-Wert (Grn): PickOne -*DefaultJCLGreenLevel: None -*OrderDependency: 9 JCLSetup *JCLGreenLevel -*JCLGreenLevel None/Normal: "RGBL1,0;" -*JCLGreenLevel Minus10/-10: "RGBL1,-10;" -*JCLGreenLevel Minus9/-9: "RGBL1,-9;" -*JCLGreenLevel Minus8/-8: "RGBL1,-8;" -*JCLGreenLevel Minus7/-7: "RGBL1,-7;" -*JCLGreenLevel Minus6/-6: "RGBL1,-6;" -*JCLGreenLevel Minus5/-5: "RGBL1,-5;" -*JCLGreenLevel Minus4/-4: "RGBL1,-4;" -*JCLGreenLevel Minus3/-3: "RGBL1,-3;" -*JCLGreenLevel Minus2/-2: "RGBL1,-2;" -*JCLGreenLevel Minus1/-1: "RGBL1,-1;" -*JCLGreenLevel Plus1/+1: "RGBL1,1;" -*JCLGreenLevel Plus2/+2: "RGBL1,2;" -*JCLGreenLevel Plus3/+3: "RGBL1,3;" -*JCLGreenLevel Plus4/+4: "RGBL1,4;" -*JCLGreenLevel Plus5/+5: "RGBL1,5;" -*JCLGreenLevel Plus6/+6: "RGBL1,6;" -*JCLGreenLevel Plus7/+7: "RGBL1,7;" -*JCLGreenLevel Plus8/+8: "RGBL1,8;" -*JCLGreenLevel Plus9/+9: "RGBL1,9;" -*JCLGreenLevel Plus10/+10: "RGBL1,10;" -*JCLCloseUI: *JCLGreenLevel - -*JCLOpenUI *JCLBlueLevel/RGB-Wert (Blau): PickOne -*DefaultJCLBlueLevel: None -*OrderDependency: 10 JCLSetup *JCLBlueLevel -*JCLBlueLevel None/Normal: "RGBL2,0;" -*JCLBlueLevel Minus10/-10: "RGBL2,-10;" -*JCLBlueLevel Minus9/-9: "RGBL2,-9;" -*JCLBlueLevel Minus8/-8: "RGBL2,-8;" -*JCLBlueLevel Minus7/-7: "RGBL2,-7;" -*JCLBlueLevel Minus6/-6: "RGBL2,-6;" -*JCLBlueLevel Minus5/-5: "RGBL2,-5;" -*JCLBlueLevel Minus4/-4: "RGBL2,-4;" -*JCLBlueLevel Minus3/-3: "RGBL2,-3;" -*JCLBlueLevel Minus2/-2: "RGBL2,-2;" -*JCLBlueLevel Minus1/-1: "RGBL2,-1;" -*JCLBlueLevel Plus1/+1: "RGBL2,1;" -*JCLBlueLevel Plus2/+2: "RGBL2,2;" -*JCLBlueLevel Plus3/+3: "RGBL2,3;" -*JCLBlueLevel Plus4/+4: "RGBL2,4;" -*JCLBlueLevel Plus5/+5: "RGBL2,5;" -*JCLBlueLevel Plus6/+6: "RGBL2,6;" -*JCLBlueLevel Plus7/+7: "RGBL2,7;" -*JCLBlueLevel Plus8/+8: "RGBL2,8;" -*JCLBlueLevel Plus9/+9: "RGBL2,9;" -*JCLBlueLevel Plus10/+10: "RGBL2,10;" -*JCLCloseUI: *JCLBlueLevel - -*JCLOpenUI *JCLHueMaster/Farbtonanpassung (Original): PickOne -*DefaultJCLHueMaster: None -*OrderDependency: 11 JCLSetup *JCLHueMaster -*JCLHueMaster None/Normal: "HUE0,0;" -*JCLHueMaster Minus180/-180: "HUE0,-180;" -*JCLHueMaster Minus170/-170: "HUE0,-170;" -*JCLHueMaster Minus160/-160: "HUE0,-160;" -*JCLHueMaster Minus150/-150: "HUE0,-150;" -*JCLHueMaster Minus140/-140: "HUE0,-140;" -*JCLHueMaster Minus130/-130: "HUE0,-130;" -*JCLHueMaster Minus120/-120: "HUE0,-120;" -*JCLHueMaster Minus110/-110: "HUE0,-110;" -*JCLHueMaster Minus100/-100: "HUE0,-100;" -*JCLHueMaster Minus90/-90: "HUE0,-90;" -*JCLHueMaster Minus80/-80: "HUE0,-80;" -*JCLHueMaster Minus70/-70: "HUE0,-70;" -*JCLHueMaster Minus60/-60: "HUE0,-60;" -*JCLHueMaster Minus50/-50: "HUE0,-50;" -*JCLHueMaster Minus40/-40: "HUE0,-40;" -*JCLHueMaster Minus30/-30: "HUE0,-30;" -*JCLHueMaster Minus20/-20: "HUE0,-20;" -*JCLHueMaster Minus10/-10: "HUE0,-10;" -*JCLHueMaster Plus10/+10: "HUE0,10;" -*JCLHueMaster Plus20/+20: "HUE0,20;" -*JCLHueMaster Plus30/+30: "HUE0,30;" -*JCLHueMaster Plus40/+40: "HUE0,40;" -*JCLHueMaster Plus50/+50: "HUE0,50;" -*JCLHueMaster Plus60/+60: "HUE0,60;" -*JCLHueMaster Plus70/+70: "HUE0,70;" -*JCLHueMaster Plus80/+80: "HUE0,80;" -*JCLHueMaster Plus90/+90: "HUE0,90;" -*JCLHueMaster Plus100/+100: "HUE0,100;" -*JCLHueMaster Plus110/+110: "HUE0,110;" -*JCLHueMaster Plus120/+120: "HUE0,120;" -*JCLHueMaster Plus130/+130: "HUE0,130;" -*JCLHueMaster Plus140/+140: "HUE0,140;" -*JCLHueMaster Plus150/+150: "HUE0,150;" -*JCLHueMaster Plus160/+160: "HUE0,160;" -*JCLHueMaster Plus170/+170: "HUE0,170;" -*JCLHueMaster Plus180/+180: "HUE0,180;" -*JCLCloseUI: *JCLHueMaster - -*JCLOpenUI *JCLHueRed/Farbtonanpassung (Rot): PickOne -*DefaultJCLHueRed: None -*OrderDependency: 12 JCLSetup *JCLHueRed -*JCLHueRed None/Normal: "HUE1,0;" -*JCLHueRed Minus10/-60: "HUE1,-10;" -*JCLHueRed Minus9/-54: "HUE1,-9;" -*JCLHueRed Minus8/-48: "HUE1,-8;" -*JCLHueRed Minus7/-42: "HUE1,-7;" -*JCLHueRed Minus6/-36: "HUE1,-6;" -*JCLHueRed Minus5/-30: "HUE1,-5;" -*JCLHueRed Minus4/-24: "HUE1,-4;" -*JCLHueRed Minus3/-18: "HUE1,-3;" -*JCLHueRed Minus2/-12: "HUE1,-2;" -*JCLHueRed Minus1/-6: "HUE1,-1;" -*JCLHueRed Plus1/+6: "HUE1,1;" -*JCLHueRed Plus2/+12: "HUE1,2;" -*JCLHueRed Plus3/+18: "HUE1,3;" -*JCLHueRed Plus4/+24: "HUE1,4;" -*JCLHueRed Plus5/+30: "HUE1,5;" -*JCLHueRed Plus6/+36: "HUE1,6;" -*JCLHueRed Plus7/+42: "HUE1,7;" -*JCLHueRed Plus8/+48: "HUE1,8;" -*JCLHueRed Plus9/+54: "HUE1,9;" -*JCLHueRed Plus10/+60: "HUE1,10;" -*JCLCloseUI: *JCLHueRed - -*JCLOpenUI *JCLHueYellow/Farbtonanpassung (Gelb): PickOne -*DefaultJCLHueYellow: None -*OrderDependency: 13 JCLSetup *JCLHueYellow -*JCLHueYellow None/Normal: "HUE2,0;" -*JCLHueYellow Minus10/-60: "HUE2,-10;" -*JCLHueYellow Minus9/-54: "HUE2,-9;" -*JCLHueYellow Minus8/-48: "HUE2,-8;" -*JCLHueYellow Minus7/-42: "HUE2,-7;" -*JCLHueYellow Minus6/-36: "HUE2,-6;" -*JCLHueYellow Minus5/-30: "HUE2,-5;" -*JCLHueYellow Minus4/-24: "HUE2,-4;" -*JCLHueYellow Minus3/-18: "HUE2,-3;" -*JCLHueYellow Minus2/-12: "HUE2,-2;" -*JCLHueYellow Minus1/-6: "HUE2,-1;" -*JCLHueYellow Plus1/+6: "HUE2,1;" -*JCLHueYellow Plus2/+12: "HUE2,2;" -*JCLHueYellow Plus3/+18: "HUE2,3;" -*JCLHueYellow Plus4/+24: "HUE2,4;" -*JCLHueYellow Plus5/+30: "HUE2,5;" -*JCLHueYellow Plus6/+36: "HUE2,6;" -*JCLHueYellow Plus7/+42: "HUE2,7;" -*JCLHueYellow Plus8/+48: "HUE2,8;" -*JCLHueYellow Plus9/+54: "HUE2,9;" -*JCLHueYellow Plus10/+60: "HUE2,10;" -*JCLCloseUI: *JCLHueYellow - -*JCLOpenUI *JCLHueGreen/Farbtonanpassung (Grn): PickOne -*DefaultJCLHueGreen: None -*OrderDependency: 14 JCLSetup *JCLHueGreen -*JCLHueGreen None/Normal: "HUE3,0;" -*JCLHueGreen Minus10/-60: "HUE3,-10;" -*JCLHueGreen Minus9/-54: "HUE3,-9;" -*JCLHueGreen Minus8/-48: "HUE3,-8;" -*JCLHueGreen Minus7/-42: "HUE3,-7;" -*JCLHueGreen Minus6/-36: "HUE3,-6;" -*JCLHueGreen Minus5/-30: "HUE3,-5;" -*JCLHueGreen Minus4/-24: "HUE3,-4;" -*JCLHueGreen Minus3/-18: "HUE3,-3;" -*JCLHueGreen Minus2/-12: "HUE3,-2;" -*JCLHueGreen Minus1/-6: "HUE3,-1;" -*JCLHueGreen Plus1/+6: "HUE3,1;" -*JCLHueGreen Plus2/+12: "HUE3,2;" -*JCLHueGreen Plus3/+18: "HUE3,3;" -*JCLHueGreen Plus4/+24: "HUE3,4;" -*JCLHueGreen Plus5/+30: "HUE3,5;" -*JCLHueGreen Plus6/+36: "HUE3,6;" -*JCLHueGreen Plus7/+42: "HUE3,7;" -*JCLHueGreen Plus8/+48: "HUE3,8;" -*JCLHueGreen Plus9/+54: "HUE3,9;" -*JCLHueGreen Plus10/+60: "HUE3,10;" -*JCLCloseUI: *JCLHueGreen - -*JCLOpenUI *JCLHueCyan/Farbtonanpassung (Cyan): PickOne -*DefaultJCLHueCyan: None -*OrderDependency: 15 JCLSetup *JCLHueCyan -*JCLHueCyan None/Normal: "HUE4,0;" -*JCLHueCyan Minus10/-60: "HUE4,-10;" -*JCLHueCyan Minus9/-54: "HUE4,-9;" -*JCLHueCyan Minus8/-48: "HUE4,-8;" -*JCLHueCyan Minus7/-42: "HUE4,-7;" -*JCLHueCyan Minus6/-36: "HUE4,-6;" -*JCLHueCyan Minus5/-30: "HUE4,-5;" -*JCLHueCyan Minus4/-24: "HUE4,-4;" -*JCLHueCyan Minus3/-18: "HUE4,-3;" -*JCLHueCyan Minus2/-12: "HUE4,-2;" -*JCLHueCyan Minus1/-6: "HUE4,-1;" -*JCLHueCyan Plus1/+6: "HUE4,1;" -*JCLHueCyan Plus2/+12: "HUE4,2;" -*JCLHueCyan Plus3/+18: "HUE4,3;" -*JCLHueCyan Plus4/+24: "HUE4,4;" -*JCLHueCyan Plus5/+30: "HUE4,5;" -*JCLHueCyan Plus6/+36: "HUE4,6;" -*JCLHueCyan Plus7/+42: "HUE4,7;" -*JCLHueCyan Plus8/+48: "HUE4,8;" -*JCLHueCyan Plus9/+54: "HUE4,9;" -*JCLHueCyan Plus10/+60: "HUE4,10;" -*JCLCloseUI: *JCLHueCyan - -*JCLOpenUI *JCLHueBlue/Farbtonanpassung (Blau): PickOne -*DefaultJCLHueBlue: None -*OrderDependency: 16 JCLSetup *JCLHueBlue -*JCLHueBlue None/Normal: "HUE5,0;" -*JCLHueBlue Minus10/-60: "HUE5,-10;" -*JCLHueBlue Minus9/-54: "HUE5,-9;" -*JCLHueBlue Minus8/-48: "HUE5,-8;" -*JCLHueBlue Minus7/-42: "HUE5,-7;" -*JCLHueBlue Minus6/-36: "HUE5,-6;" -*JCLHueBlue Minus5/-30: "HUE5,-5;" -*JCLHueBlue Minus4/-24: "HUE5,-4;" -*JCLHueBlue Minus3/-18: "HUE5,-3;" -*JCLHueBlue Minus2/-12: "HUE5,-2;" -*JCLHueBlue Minus1/-6: "HUE5,-1;" -*JCLHueBlue Plus1/+6: "HUE5,1;" -*JCLHueBlue Plus2/+12: "HUE5,2;" -*JCLHueBlue Plus3/+18: "HUE5,3;" -*JCLHueBlue Plus4/+24: "HUE5,4;" -*JCLHueBlue Plus5/+30: "HUE5,5;" -*JCLHueBlue Plus6/+36: "HUE5,6;" -*JCLHueBlue Plus7/+42: "HUE5,7;" -*JCLHueBlue Plus8/+48: "HUE5,8;" -*JCLHueBlue Plus9/+54: "HUE5,9;" -*JCLHueBlue Plus10/+60: "HUE5,10;" -*JCLCloseUI: *JCLHueBlue - -*JCLOpenUI *JCLHueMagenta/Farbtonanpassung (Magenta): PickOne -*DefaultJCLHueMagenta: None -*OrderDependency: 17 JCLSetup *JCLHueMagenta -*JCLHueMagenta None/Normal: "HUE6,0;" -*JCLHueMagenta Minus10/-60: "HUE6,-10;" -*JCLHueMagenta Minus9/-54: "HUE6,-9;" -*JCLHueMagenta Minus8/-48: "HUE6,-8;" -*JCLHueMagenta Minus7/-42: "HUE6,-7;" -*JCLHueMagenta Minus6/-36: "HUE6,-6;" -*JCLHueMagenta Minus5/-30: "HUE6,-5;" -*JCLHueMagenta Minus4/-24: "HUE6,-4;" -*JCLHueMagenta Minus3/-18: "HUE6,-3;" -*JCLHueMagenta Minus2/-12: "HUE6,-2;" -*JCLHueMagenta Minus1/-6: "HUE6,-1;" -*JCLHueMagenta Plus1/+6: "HUE6,1;" -*JCLHueMagenta Plus2/+12: "HUE6,2;" -*JCLHueMagenta Plus3/+18: "HUE6,3;" -*JCLHueMagenta Plus4/+24: "HUE6,4;" -*JCLHueMagenta Plus5/+30: "HUE6,5;" -*JCLHueMagenta Plus6/+36: "HUE6,6;" -*JCLHueMagenta Plus7/+42: "HUE6,7;" -*JCLHueMagenta Plus8/+48: "HUE6,8;" -*JCLHueMagenta Plus9/+54: "HUE6,9;" -*JCLHueMagenta Plus10/+60: "HUE6,10;" -*JCLCloseUI: *JCLHueMagenta - -*JCLOpenUI *JCLLightnessGamma/Helligkeit (Gamma): PickOne -*DefaultJCLLightnessGamma: None -*OrderDependency: 18 JCLSetup *JCLLightnessGamma -*JCLLightnessGamma None/Normal: "LGHT0,0;" -*JCLLightnessGamma Minus10/-10: "LGHT0,-10;" -*JCLLightnessGamma Minus9/-9: "LGHT0,-9;" -*JCLLightnessGamma Minus8/-8: "LGHT0,-8;" -*JCLLightnessGamma Minus7/-7: "LGHT0,-7;" -*JCLLightnessGamma Minus6/-6: "LGHT0,-6;" -*JCLLightnessGamma Minus5/-5: "LGHT0,-5;" -*JCLLightnessGamma Minus4/-4: "LGHT0,-4;" -*JCLLightnessGamma Minus3/-3: "LGHT0,-3;" -*JCLLightnessGamma Minus2/-2: "LGHT0,-2;" -*JCLLightnessGamma Minus1/-1: "LGHT0,-1;" -*JCLLightnessGamma Plus1/+1: "LGHT0,1;" -*JCLLightnessGamma Plus2/+2: "LGHT0,2;" -*JCLLightnessGamma Plus3/+3: "LGHT0,3;" -*JCLLightnessGamma Plus4/+4: "LGHT0,4;" -*JCLLightnessGamma Plus5/+5: "LGHT0,5;" -*JCLLightnessGamma Plus6/+6: "LGHT0,6;" -*JCLLightnessGamma Plus7/+7: "LGHT0,7;" -*JCLLightnessGamma Plus8/+8: "LGHT0,8;" -*JCLLightnessGamma Plus9/+9: "LGHT0,9;" -*JCLLightnessGamma Plus10/+10: "LGHT0,10;" -*JCLCloseUI: *JCLLightnessGamma - -*JCLOpenUI *JCLLightnessContrast/Helligkeit (Kontrast): PickOne -*DefaultJCLLightnessContrast: None -*OrderDependency: 19 JCLSetup *JCLLightnessContrast -*JCLLightnessContrast None/Normal: "LGHT1,0;" -*JCLLightnessContrast Minus10/-10: "LGHT1,-10;" -*JCLLightnessContrast Minus9/-9: "LGHT1,-9;" -*JCLLightnessContrast Minus8/-8: "LGHT1,-8;" -*JCLLightnessContrast Minus7/-7: "LGHT1,-7;" -*JCLLightnessContrast Minus6/-6: "LGHT1,-6;" -*JCLLightnessContrast Minus5/-5: "LGHT1,-5;" -*JCLLightnessContrast Minus4/-4: "LGHT1,-4;" -*JCLLightnessContrast Minus3/-3: "LGHT1,-3;" -*JCLLightnessContrast Minus2/-2: "LGHT1,-2;" -*JCLLightnessContrast Minus1/-1: "LGHT1,-1;" -*JCLLightnessContrast Plus1/+1: "LGHT1,1;" -*JCLLightnessContrast Plus2/+2: "LGHT1,2;" -*JCLLightnessContrast Plus3/+3: "LGHT1,3;" -*JCLLightnessContrast Plus4/+4: "LGHT1,4;" -*JCLLightnessContrast Plus5/+5: "LGHT1,5;" -*JCLLightnessContrast Plus6/+6: "LGHT1,6;" -*JCLLightnessContrast Plus7/+7: "LGHT1,7;" -*JCLLightnessContrast Plus8/+8: "LGHT1,8;" -*JCLLightnessContrast Plus9/+9: "LGHT1,9;" -*JCLLightnessContrast Plus10/+10: "LGHT1,10;" -*JCLCloseUI: *JCLLightnessContrast - -*JCLOpenUI *JCLSaturation/Sttigung: PickOne -*DefaultJCLSaturation: None -*OrderDependency: 20 JCLSetup *JCLSaturation -*JCLSaturation None/Normal: "SATU0;EXIT;<1B>%-12345X" -*JCLSaturation Minus10/-10: "SATU-10;EXIT;<1B>%-12345X" -*JCLSaturation Minus9/-9: "SATU-9;EXIT;<1B>%-12345X" -*JCLSaturation Minus8/-8: "SATU-8;EXIT;<1B>%-12345X" -*JCLSaturation Minus7/-7: "SATU-7;EXIT;<1B>%-12345X" -*JCLSaturation Minus6/-6: "SATU-6;EXIT;<1B>%-12345X" -*JCLSaturation Minus5/-5: "SATU-5;EXIT;<1B>%-12345X" -*JCLSaturation Minus4/-4: "SATU-4;EXIT;<1B>%-12345X" -*JCLSaturation Minus3/-3: "SATU-3;EXIT;<1B>%-12345X" -*JCLSaturation Minus2/-2: "SATU-2;EXIT;<1B>%-12345X" -*JCLSaturation Minus1/-1: "SATU-1;EXIT;<1B>%-12345X" -*JCLSaturation Plus1/+1: "SATU1;EXIT;<1B>%-12345X" -*JCLSaturation Plus2/+2: "SATU2;EXIT;<1B>%-12345X" -*JCLSaturation Plus3/+3: "SATU3;EXIT;<1B>%-12345X" -*JCLSaturation Plus4/+4: "SATU4;EXIT;<1B>%-12345X" -*JCLSaturation Plus5/+5: "SATU5;EXIT;<1B>%-12345X" -*JCLSaturation Plus6/+6: "SATU6;EXIT;<1B>%-12345X" -*JCLSaturation Plus7/+7: "SATU7;EXIT;<1B>%-12345X" -*JCLSaturation Plus8/+8: "SATU8;EXIT;<1B>%-12345X" -*JCLSaturation Plus9/+9: "SATU9;EXIT;<1B>%-12345X" -*JCLSaturation Plus10/+10: "SATU10;EXIT;<1B>%-12345X" -*JCLCloseUI: *JCLSaturation - -*% Installable Options -*OpenGroup: InstallableOptions/Installierte Optionen - -*% Paper Feeders -*OpenUI *Option20/Papierzufhrungen: PickOne -*DefaultOption20: None -*Option20 None/Nicht installiert: "" -*Option20 One/Eine: "" -*Option20 Two/Zwei: "" -*Option20 Three/Three: "" -*?Option20: " - save - (None) currentpagedevice dup /InputAttributes known { - /InputAttributes get - dup 1 known {dup 1 get null ne {exch pop (One) exch} if} if - dup 4 known {dup 4 get null ne {exch pop (Two) exch} if} if - dup 5 known {dup 5 get null ne {exch pop (Three) exch} if} if - } if pop - = flush restore" -*End -*CloseUI: *Option20 - -*% Disk Drive -*OpenUI *Option18/Optionaler Datentrger: PickOne -*DefaultOption18: RAMDisk -*Option18 None/Nicht installiert: "" -*Option18 RAMDisk/RAM Disk: "" -*Option18 SSDrive/Festplatte (SSD): "" -*Option18 SDCard/SD-Karte: "" -*?Option18: " - save - false - (%disk?%) - {currentdevparams dup /Writeable known - {dup /Writeable get - {exch pop /LogicalSize get dup 0 gt exch 950000 lt eq true}{pop pop false} ifelse - }{pop pop} ifelse - } 100 string /IODevice resourceforall - {{(RAMDisk)}{(HardDisk)} ifelse}{(None)} ifelse - = flush restore" -*End -*CloseUI: *Option18 - -*% Installed Memory -*% Not supported - -*CloseGroup: InstallableOptions - - -*% Virtual Memory -*FreeVM: "32000000" - -*% Constraints - -*% Default Cassette -*UIConstraints: *MediaType Transparency *InputSlot Internal -*UIConstraints: *InputSlot Internal *MediaType Transparency -*UIConstraints: *MediaType Labels *InputSlot Internal -*UIConstraints: *InputSlot Internal *MediaType Labels -*UIConstraints: *MediaType Envelope *InputSlot Internal -*UIConstraints: *InputSlot Internal *MediaType Envelope -*UIConstraints: *MediaType Cardstock *InputSlot Internal -*UIConstraints: *InputSlot Internal *MediaType Cardstock -*UIConstraints: *MediaType CoatedPaper *InputSlot Internal -*UIConstraints: *InputSlot Internal *MediaType CoatedPaper -*UIConstraints: *PageSize EnvPersonal *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageSize EnvPersonal -*UIConstraints: *PageRegion EnvPersonal *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageRegion EnvPersonal -*UIConstraints: *PageSize Env9 *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageSize Env9 -*UIConstraints: *PageRegion Env9 *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageRegion Env9 -*UIConstraints: *PageSize Env10 *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageSize Env10 -*UIConstraints: *PageRegion Env10 *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageRegion Env10 -*UIConstraints: *PageSize EnvMonarch *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageSize EnvMonarch -*UIConstraints: *PageRegion EnvMonarch *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageRegion EnvMonarch -*UIConstraints: *PageSize EnvDL *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageSize EnvDL -*UIConstraints: *PageRegion EnvDL *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageRegion EnvDL -*UIConstraints: *PageSize EnvC5 *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageSize EnvC5 -*UIConstraints: *PageRegion EnvC5 *InputSlot Internal -*UIConstraints: *InputSlot Internal *PageRegion EnvC5 - -*% Optional Cassette2 -*UIConstraints: *Option20 None *InputSlot PF5100A -*UIConstraints: *InputSlot PF5100A *Option20 None -*UIConstraints: *MediaType Transparency *InputSlot PF5100A -*UIConstraints: *InputSlot PF5100A *MediaType Transparency -*UIConstraints: *MediaType Cardstock *InputSlot PF5100A -*UIConstraints: *InputSlot PF5100A *MediaType Cardstock -*UIConstraints: *PageSize A6 *InputSlot PF5100A -*UIConstraints: *InputSlot PF5100A *PageSize A6 -*UIConstraints: *PageRegion A6 *InputSlot PF5100A -*UIConstraints: *InputSlot PF5100A *PageRegion A6 - -*% Optional Cassette3 -*UIConstraints: *Option20 None *InputSlot PF5100B -*UIConstraints: *InputSlot PF5100B *Option20 None -*UIConstraints: *Option20 One *InputSlot PF5100B -*UIConstraints: *InputSlot PF5100B *Option20 One -*UIConstraints: *MediaType Transparency *InputSlot PF5100B -*UIConstraints: *InputSlot PF5100B *MediaType Transparency -*UIConstraints: *MediaType Cardstock *InputSlot PF5100B -*UIConstraints: *InputSlot PF5100B *MediaType Cardstock -*UIConstraints: *PageSize A6 *InputSlot PF5100B -*UIConstraints: *InputSlot PF5100B *PageSize A6 -*UIConstraints: *PageRegion A6 *InputSlot PF5100B -*UIConstraints: *InputSlot PF5100B *PageRegion A6 - -*% Optional Cassette4 -*UIConstraints: *Option20 None *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *Option20 None -*UIConstraints: *Option20 One *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *Option20 One -*UIConstraints: *Option20 Two *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *Option20 Two -*UIConstraints: *MediaType Transparency *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *MediaType Transparency -*UIConstraints: *MediaType Cardstock *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *MediaType Cardstock -*UIConstraints: *PageSize A6 *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *PageSize A6 -*UIConstraints: *PageRegion A6 *InputSlot PF5100C -*UIConstraints: *InputSlot PF5100C *PageRegion A6 - -*% Duplex -*UIConstraints: *Duplex *MediaType Transparency -*UIConstraints: *MediaType Transparency *Duplex DuplexTumble -*UIConstraints: *MediaType Transparency *Duplex DuplexNoTumble -*UIConstraints: *Duplex *MediaType Labels -*UIConstraints: *MediaType Labels *Duplex DuplexTumble -*UIConstraints: *MediaType Labels *Duplex DuplexNoTumble -*UIConstraints: *Duplex *MediaType Vellum -*UIConstraints: *MediaType Vellum *Duplex DuplexTumble -*UIConstraints: *MediaType Vellum *Duplex DuplexNoTumble -*UIConstraints: *Duplex *MediaType Envelope -*UIConstraints: *MediaType Envelope *Duplex DuplexTumble -*UIConstraints: *MediaType Envelope *Duplex DuplexNoTumble -*UIConstraints: *Duplex *MediaType Cardstock -*UIConstraints: *MediaType Cardstock *Duplex DuplexTumble -*UIConstraints: *MediaType Cardstock *Duplex DuplexNoTumble -*UIConstraints: *Duplex *MediaType CoatedPaper -*UIConstraints: *MediaType CoatedPaper *Duplex DuplexTumble -*UIConstraints: *MediaType CoatedPaper *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize A6 -*UIConstraints: *PageSize A6 *Duplex DuplexTumble -*UIConstraints: *PageSize A6 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion A6 -*UIConstraints: *PageRegion A6 *Duplex DuplexTumble -*UIConstraints: *PageRegion A6 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize B6 -*UIConstraints: *PageSize B6 *Duplex DuplexTumble -*UIConstraints: *PageSize B6 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion B6 -*UIConstraints: *PageRegion B6 *Duplex DuplexTumble -*UIConstraints: *PageRegion B6 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize Env10 -*UIConstraints: *PageSize Env10 *Duplex DuplexTumble -*UIConstraints: *PageSize Env10 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion Env10 -*UIConstraints: *PageRegion Env10 *Duplex DuplexTumble -*UIConstraints: *PageRegion Env10 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize EnvPersonal -*UIConstraints: *PageSize EnvPersonal *Duplex DuplexTumble -*UIConstraints: *PageSize EnvPersonal *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion EnvPersonal -*UIConstraints: *PageRegion EnvPersonal *Duplex DuplexTumble -*UIConstraints: *PageRegion EnvPersonal *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize Env9 -*UIConstraints: *PageSize Env9 *Duplex DuplexTumble -*UIConstraints: *PageSize Env9 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion Env9 -*UIConstraints: *PageRegion Env9 *Duplex DuplexTumble -*UIConstraints: *PageRegion Env9 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize EnvC5 -*UIConstraints: *PageSize EnvC5 *Duplex DuplexTumble -*UIConstraints: *PageSize EnvC5 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion EnvC5 -*UIConstraints: *PageRegion EnvC5 *Duplex DuplexTumble -*UIConstraints: *PageRegion EnvC5 *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize EnvDL -*UIConstraints: *PageSize EnvDL *Duplex DuplexTumble -*UIConstraints: *PageSize EnvDL *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion EnvDL -*UIConstraints: *PageRegion EnvDL *Duplex DuplexTumble -*UIConstraints: *PageRegion EnvDL *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageSize EnvMonarch -*UIConstraints: *PageSize EnvMonarch *Duplex DuplexTumble -*UIConstraints: *PageSize EnvMonarch *Duplex DuplexNoTumble -*UIConstraints: *Duplex *PageRegion EnvMonarch -*UIConstraints: *PageRegion EnvMonarch *Duplex DuplexTumble -*UIConstraints: *PageRegion EnvMonarch *Duplex DuplexNoTumble - -*% Additional Constraints -*UIConstraints: *KCEcoprint On *KCGlossmode True -*UIConstraints: *KCGlossmode True *KCEcoprint On -*UIConstraints: *Option18 None *KCCollate QuickCopy -*UIConstraints: *KCCollate QuickCopy *Option18 None -*UIConstraints: *Option18 RAMDisk *KCCollate QuickCopy -*UIConstraints: *KCCollate QuickCopy *Option18 RAMDisk -*UIConstraints: *Option18 None *KCCollate ProofHold -*UIConstraints: *KCCollate ProofHold *Option18 None -*UIConstraints: *Option18 None *KCCollate On -*UIConstraints: *KCCollate On *Option18 None -*UIConstraints: *ColorModel Gray *Colorreprod Textgraph -*UIConstraints: *Colorreprod Textgraph *ColorModel Gray -*UIConstraints: *ColorModel Gray *Colorreprod Textphoto -*UIConstraints: *Colorreprod Textphoto *ColorModel Gray -*UIConstraints: *ColorModel Gray *Colorreprod Vivid -*UIConstraints: *Colorreprod Vivid *ColorModel Gray -*UIConstraints: *ColorModel Gray *Colorreprod Publications -*UIConstraints: *Colorreprod Publications *ColorModel Gray -*UIConstraints: *ColorModel Gray *Colorreprod Lineart -*UIConstraints: *Colorreprod Lineart *ColorModel Gray -*UIConstraints: *ColorModel Gray *Colorreprod Colortable -*UIConstraints: *Colorreprod Colortable *ColorModel Gray -*UIConstraints: *ColorModel Gray *GRAYBLKTONER True -*UIConstraints: *GRAYBLKTONER True *ColorModel Gray - -*% Resolution -*OpenUI *Resolution/Resolution: PickOne -*OrderDependency: 10 AnySetup *Resolution -*DefaultResolution: 600dpi -*Resolution 600dpi/600 dpi: "<> setpagedevice -<> setpagedevice -<> >> setpagedevice" -*Resolution 1200dpi/1200 dpi: "<> setpagedevice -<> setpagedevice -<> >> setpagedevice" -*?Resolution: "save currentpagedevice /HWResolution get 0 get ( ) cvs print (dpi) = flush restore" -*CloseUI: *Resolution - -*% KCEcoprint -*OpenUI *KCEcoprint/EcoPrint: PickOne -*OrderDependency: 10 AnySetup *KCEcoprint -*DefaultKCEcoprint: Off -*KCEcoprint Off/Aus: "<< /EconoMode false >> setpagedevice" -*KCEcoprint On/Ein: "<< /EconoMode true >> setpagedevice" -*CloseUI: *KCEcoprint - -*% Image Refinement -*OpenUI *Smoothing/KIR: PickOne -*OrderDependency: 50 AnySetup *Smoothing -*DefaultSmoothing: True -*Smoothing True/On: "1 statusdict /setdoret get exec" -*Smoothing False/Off: "0 statusdict /setdoret get exec" -*?Smoothing: " - save - [(False)(True)(True)(True)] - statusdict /doret get exec {get} stopped - {pop pop (Unknown)} if - = flush restore" -*End -*CloseUI: *Smoothing - -*% Color Model -*OpenUI *ColorModel/Farbmodus: PickOne -*OrderDependency: 10 AnySetup *ColorModel -*DefaultColorModel: CMYK -*ColorModel CMYK/Mehrfarbig: "<< /ProcessColorModel /DeviceCMYK >> setpagedevice" -*ColorModel Gray/Schwarz/Wei: "<< /ProcessColorModel /DeviceGray >> setpagedevice" -*?ColorModel: " - save - currentpagedevice /ProcessColorModel get - 1 { - dup /DeviceGray eq {pop (Gray) exit} if - dup /DeviceCMYK eq {pop (CMYK) exit} if - pop (Unknown) - } repeat - = flush restore" -*End -*CloseUI: *ColorModel - -*% Halftone -*OpenUI *KCHalftone/Autotypieraster: PickOne -*OrderDependency: 10 AnySetup *KCHalftone -*DefaultKCHalftone: Gradation -*KCHalftone Gradation/Fr Farbgltte optimieren: "<< /DefaultHT9 1 >> setpagedevice" -*KCHalftone Detail/Fr Detail optimieren: "<< /DefaultHT9 2 >> setpagedevice" -*KCHalftone LineArt/Fr Strichzeichnungen optimieren: "<< /DefaultHT9 3 >> setpagedevice" -*End -*CloseUI: *KCHalftone - -*% Glossmode -*OpenUI *KCGlossmode/Glanzmodus: Boolean -*OrderDependency: 10 AnySetup *KCGlossmode -*DefaultKCGlossmode: False -*KCGlossmode False/Aus: "mark 0 statusdict /setglossmode 2 copy known { get exec } if cleartomark" -*KCGlossmode True/Ein: "mark 1 statusdict /setglossmode 2 copy known { get exec } if cleartomark" -*End -*CloseUI: *KCGlossmode - -*% Color Reproduction -*OpenUI *Colorreprod/Farbwiedergabe: PickOne -*OrderDependency: 10 AnySetup *Colorreprod -*DefaultColorreprod: Printersettings -*Colorreprod Printersettings/Druckereinstellungen: "<< /ColorReproductionMode 30 >> setpagedevice" -*Colorreprod Textgraph/Text und Grafiken: "<< /ColorReproductionMode 31 >> setpagedevice" -*Colorreprod Textphoto/Text und Fotos: "<< /ColorReproductionMode 32 >> setpagedevice" -*Colorreprod Vivid/Lebendige Farben: "<< /ColorReproductionMode 33 >> setpagedevice" -*Colorreprod Publications/Verffentlichungen: "<< /ColorReproductionMode 34 >> setpagedevice" -*Colorreprod Lineart/Strichzeichnung: "<< /ColorReproductionMode 35 >> setpagedevice" -*Colorreprod Colortable/Benutzerdefinierte Tabelle: "<< /ColorReproductionMode 128 >> setpagedevice" -*CloseUI: *Colorreprod - -*% RenderingColorMode -*OpenUI *RCM/Farbkonvertierung: PickOne -*OrderDependency: 11 AnySetup *RCM -*DefaultRCM: PrnDef -*RCM PrnDef/Druckereinstellungen: "" -*RCM Color3/Geschwindigkeitsprioritt: "<< /InternalColorMode 0 >> setpagedevice" -*RCM Color4/Qualittsprioritt: "<< /InternalColorMode 2 >> setpagedevice" -*CloseUI: *RCM - -*% Grays with Black Toner -*OpenUI *GRAYBLKTONER/Print Grays with Black Toner: Boolean -*OrderDependency: 11 AnySetup *GRAYBLKTONER -*DefaultGRAYBLKTONER: False -*GRAYBLKTONER False/Off: "<< /PrintGraysWithBlackToner false >> setpagedevice" -*GRAYBLKTONER True/On: "<< /PrintGraysWithBlackToner true >> setpagedevice" -*End -*CloseUI: *GRAYBLKTONER - -*% CIE -*OpenUI *CIE/CIE Optimierung: PickOne -*OrderDependency: 11 AnySetup *CIE -*DefaultCIE: PrnDef -*CIE PrnDef/Druckereinstellungen: "" -*CIE False/Deaktiviert: "<< /RejectionCIEcolor false >> setuserparams" -*CIE True/Aktiviert: "<< /RejectionCIEcolor true >> setuserparams" -*End -*CloseUI: *CIE - -*% Halftone Information -*DefaultHalftoneType: 1 -*ScreenFreq: "37.5" -*ScreenAngle: "45.0" -*ResScreenFreq 600dpi: "37.5" -*ResScreenAngle 600dpi: "45.0" - -*DefaultScreenProc: Ellipse -*ScreenProc Dot: " - {abs exch abs 2 copy add 1 gt - {1 sub dup mul exch 1 sub dup mul add 1 sub} - {dup mul exch dup mul add 1 exch sub} ifelse}" -*End -*ScreenProc Line: "{pop}" -*ScreenProc Ellipse: "{dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub}" -*DefaultTransfer: Null -*Transfer Null: "{}" -*Transfer Null.Inverse: "{1 exch sub}" - -*% Page Policy Definitions -*OpenUI *PagePolicy/Page Policy: PickOne -*OrderDependency: 15 AnySetup *PagePolicy -*DefaultPagePolicy: On -*PagePolicy On/AutoSizeSelect: "<< /DeferredMediaSelection true >> setpagedevice" -*CloseUI: *PagePolicy - -*% Paper Handling -*% Page Size Definitions -*OpenUI *PageSize: PickOne -*OrderDependency: 40 AnySetup *PageSize -*DefaultPageSize: A4 -*PageSize A4/A4: "<< /Policies << /PageSize 7 >> /PageSize [595 842] /ImagingBBox null >> setpagedevice" -*PageSize A5/A5: "<< /Policies << /PageSize 7 >> /PageSize [421 595] /ImagingBBox null >> setpagedevice" -*PageSize A6/A6: "<< /Policies << /PageSize 7 >> /PageSize [297 421] /ImagingBBox null >> setpagedevice" -*PageSize B5/B5 (JIS): "<< /Policies << /PageSize 7 >> /PageSize [516 729] /ImagingBBox null >> setpagedevice" -*PageSize ISOB5/B5 (ISO): "<< /Policies << /PageSize 7 >> /PageSize [499 708] /ImagingBBox null >> setpagedevice" -*PageSize B6/B6: "<< /Policies << /PageSize 7 >> /PageSize [364 516] /ImagingBBox null >> setpagedevice" -*PageSize OficioII/Oficio II: "<< /Policies << /PageSize 7 >> /PageSize [612 936] /ImagingBBox null >> setpagedevice" -*PageSize Folio/Folio (210 x 330mm): "<< /Policies << /PageSize 7 >> /PageSize [595 935] /ImagingBBox null >> setpagedevice" -*PageSize Statement/Statement: "<< /Policies << /PageSize 7 >> /PageSize [396 612] /ImagingBBox null >> setpagedevice" -*PageSize P16K/16K: "<< /Policies << /PageSize 7 >> /PageSize [558 774] /ImagingBBox null >> setpagedevice" -*PageSize OficioMX/216 x 340 mm: "<< /Policies << /PageSize 7 >> /PageSize [612 964] /ImagingBBox null >> setpagedevice" -*PageSize Letter/US-Letter: "<< /Policies << /PageSize 7 >> /PageSize [612 792] /ImagingBBox null >> setpagedevice" -*PageSize Legal/US-Legal: "<< /Policies << /PageSize 7 >> /PageSize [612 1008] /ImagingBBox null >> setpagedevice" -*PageSize Executive/US-Executive: "<< /Policies << /PageSize 7 >> /PageSize [522 756] /ImagingBBox null >> setpagedevice" -*PageSize EnvPersonal/Umschlag #6: "<< /Policies << /PageSize 7 >> /PageSize [261 468] /ImagingBBox null >> setpagedevice" -*PageSize Env9/Umschlag #9: "<< /Policies << /PageSize 7 >> /PageSize [279 639] /ImagingBBox null >> setpagedevice" -*PageSize Env10/Umschlag #10: "<< /Policies << /PageSize 7 >> /PageSize [297 684] /ImagingBBox null >> setpagedevice" -*PageSize EnvMonarch/Umschlag US-Monarch: "<< /Policies << /PageSize 7 >> /PageSize [279 540] /ImagingBBox null >> setpagedevice" -*PageSize EnvDL/Umschlag DL: "<< /Policies << /PageSize 7 >> /PageSize [312 624] /ImagingBBox null >> setpagedevice" -*PageSize EnvC5/Umschlag C5: "<< /Policies << /PageSize 7 >> /PageSize [459 649] /ImagingBBox null >> setpagedevice" -*?PageSize: " - save - currentpagedevice /PageSize get aload pop - 2 copy gt {exch} if - (Unknown) - 20 dict - dup [595 842] (A4) put - dup [421 595] (A5) put - dup [297 421] (A6) put - dup [516 729] (B5) put - dup [499 708] (ISOB5) put - dup [364 516] (B6) put - dup [612 936] (OficioII) put - dup [595 935] (Folio) put - dup [396 612] (Statement) put - dup [558 774] (P16K) put - dup [612 964] (OficioMX) put - dup [612 792] (Letter) put - dup [612 1008] (Legal) put - dup [522 756] (Executive) put - dup [261 468] (EnvPersonal) put - dup [279 639] (Env9) put - dup [297 684] (Env10) put - dup [279 540] (EnvMonarch) put - dup [312 624] (EnvDL) put - dup [459 649] (EnvC5) put - {exch aload pop 4 index sub abs 5 le exch - 5 index sub abs 5 le and - {exch pop exit}{pop} ifelse - } bind forall - = flush pop pop restore " -*End -*CloseUI: *PageSize - -*% Page Region Definitions for Frame Buffer -*OpenUI *PageRegion: PickOne -*OrderDependency: 40 AnySetup *PageRegion -*DefaultPageRegion: A4 -*PageRegion A4/A4: "<< /Policies << /PageSize 7 >> /PageSize [595 842] /ImagingBBox null >> setpagedevice" -*PageRegion A5/A5: "<< /Policies << /PageSize 7 >> /PageSize [421 595] /ImagingBBox null >> setpagedevice" -*PageRegion A6/A6: "<< /Policies << /PageSize 7 >> /PageSize [297 421] /ImagingBBox null >> setpagedevice" -*PageRegion B5/B5 (JIS): "<< /Policies << /PageSize 7 >> /PageSize [516 729] /ImagingBBox null >> setpagedevice" -*PageRegion ISOB5/B5 (ISO): "<< /Policies << /PageSize 7 >> /PageSize [499 708] /ImagingBBox null >> setpagedevice" -*PageRegion B6/B6: "<< /Policies << /PageSize 7 >> /PageSize [364 516] /ImagingBBox null >> setpagedevice" -*PageRegion Letter/US-Letter: "<< /Policies << /PageSize 7 >> /PageSize [612 792] /ImagingBBox null >> setpagedevice" -*PageRegion Legal/US-Legal: "<< /Policies << /PageSize 7 >> /PageSize [612 1008] /ImagingBBox null >> setpagedevice" -*PageRegion Executive/US-Executive: "<< /Policies << /PageSize 7 >> /PageSize [522 756] /ImagingBBox null >> setpagedevice" -*PageRegion EnvPersonal/Umschlag #6: "<< /Policies << /PageSize 7 >> /PageSize [261 468] /ImagingBBox null >> setpagedevice" -*PageRegion Env9/Umschlag #9: "<< /Policies << /PageSize 7 >> /PageSize [279 639] /ImagingBBox null >> setpagedevice" -*PageRegion Env10/Umschlag #10: "<< /Policies << /PageSize 7 >> /PageSize [297 684] /ImagingBBox null >> setpagedevice" -*PageRegion EnvMonarch/Umschlag US-Monarch: "<< /Policies << /PageSize 7 >> /PageSize [279 540] /ImagingBBox null >> setpagedevice" -*PageRegion EnvDL/Umschlag DL: "<< /Policies << /PageSize 7 >> /PageSize [312 624] /ImagingBBox null >> setpagedevice" -*PageRegion EnvC5/Umschlag C5: "<< /Policies << /PageSize 7 >> /PageSize [459 649] /ImagingBBox null >> setpagedevice" -*PageRegion OficioII/Oficio II: "<< /Policies << /PageSize 7 >> /PageSize [612 936] /ImagingBBox null >> setpagedevice" -*PageRegion Folio/Folio (210 x 330mm): "<< /Policies << /PageSize 7 >> /PageSize [595 935] /ImagingBBox null >> setpagedevice" -*PageRegion Statement/Statement: "<< /Policies << /PageSize 7 >> /PageSize [396 612] /ImagingBBox null >> setpagedevice" -*PageRegion P16K/16K: "<< /Policies << /PageSize 7 >> /PageSize [558 774] /ImagingBBox null >> setpagedevice" -*PageRegion OficioMX/216 x 340 mm: "<< /Policies << /PageSize 7 >> /PageSize [612 964] /ImagingBBox null >> setpagedevice" -*CloseUI: *PageRegion - -*% Imageable Area Definitions -*DefaultImageableArea: A4 -*ImageableArea A4/A4: "12 10 583 832" -*ImageableArea A5/A5: "12 10 409 585" -*ImageableArea A6/A6: "12 10 285 411" -*ImageableArea B5/B5 (JIS): "21 10 495 719" -*ImageableArea ISOB5/B5 (ISO): "12 12 487 696" -*ImageableArea B6/B6: "12 10 352 506" -*ImageableArea OficioII/Oficio II: "12 12 600 924" -*ImageableArea Folio/Folio (210 x 330mm): "12 12 583 923" -*ImageableArea Statement/Statement: "12 12 384 600" -*ImageableArea P16K/16K: "12 12 547 763" -*ImageableArea OficioMX/216 x 340 mm: "12 12 600 952" -*ImageableArea Letter/US-Letter: "12 08 600 784" -*ImageableArea Legal/US-Legal: "12 08 600 1000" -*ImageableArea Executive/US-Executive: "12 08 510 748" -*ImageableArea EnvPersonal/Umschlag #6: "12 08 249 460" -*ImageableArea Env9/Umschlag #9: "12 08 267 631" -*ImageableArea Env10/Umschlag #10: "12 08 285 676" -*ImageableArea EnvMonarch/Umschlag US-Monarch: "12 08 267 532" -*ImageableArea EnvDL/Umschlag DL: "12 10 300 614" -*ImageableArea EnvC5/Umschlag C5: "12 10 447 639" -*?ImageableArea: " - save - /cvp {cvi ( ) cvs - print ( ) print} bind def - newpath clippath pathbbox - 4 -2 roll exch 2 {ceiling cvp} repeat - exch 2 {floor cvp} repeat ( ) - = flush restore" -*End - -*% Physical Dimensions of Media -*DefaultPaperDimension: A4 -*PaperDimension A4/A4: "595 842" -*PaperDimension A5/A5: "421 595" -*PaperDimension A6/A6: "297 421" -*PaperDimension B5/B5 (JIS): "516 729" -*PaperDimension ISOB5/B5 (ISO): "499 708" -*PaperDimension B6/B6: "364 516" -*PaperDimension OficioII/Oficio II: "612 936" -*PaperDimension Folio/Folio (210 x 330mm): "595 935" -*PaperDimension Statement/Statement: "396 612" -*PaperDimension P16K/16K: "558 774" -*PaperDimension OficioMX/216 x 340 mm: "612 964" -*PaperDimension Letter/US-Letter: "612 792" -*PaperDimension Legal/US-Legal: "612 1008" -*PaperDimension Executive/US-Executive: "522 756" -*PaperDimension EnvPersonal/Umschlag #6: "261 468" -*PaperDimension Env9/Umschlag #9: "279 639" -*PaperDimension Env10/Umschlag #10: "297 684" -*PaperDimension EnvMonarch/Umschlag US-Monarch: "279 540" -*PaperDimension EnvDL/Umschlag DL: "312 624" -*PaperDimension EnvC5/Umschlag C5: "459 649" - -*% Custom Page Size Definitions -*% MP Tray Sizes - -*VariablePaperSize: True -*LeadingEdge Short: "" -*DefaultLeadingEdge: Short -*HWMargins: 12 12 12 12 -*MaxMediaWidth: "612" -*MaxMediaHeight: "1008" -*NonUIOrderDependency: 40 AnySetup *CustomPageSize -*CustomPageSize True: " - pop pop pop - << /PageSize [ 5 -2 roll ] /ImagingBBox null - /DeferredMediaSelection true - >> setpagedevice" -*End -*ParamCustomPageSize Width: 1 points 198 612 -*ParamCustomPageSize Height: 2 points 420 1008 -*ParamCustomPageSize WidthOffset: 3 points 0 0 -*ParamCustomPageSize HeightOffset: 4 points 0 0 -*ParamCustomPageSize Orientation: 5 int 1 1 - -*% Input Slot Definitions -*OpenUI *InputSlot: PickOne -*OrderDependency: 30 AnySetup *InputSlot -*DefaultInputSlot: Internal -*InputSlot Internal/Kassette 1: "<< /ManualFeed false >> setpagedevice statusdict begin 0 setpapertray end" -*InputSlot PF5100A/Kassette 2: "<< /ManualFeed false >> setpagedevice statusdict begin 1 setpapertray end" -*InputSlot PF5100B/Kassette 3: "<< /ManualFeed false >> setpagedevice statusdict begin 4 setpapertray end" -*InputSlot MF1/Universalzufuhr: "<< /ManualFeed false >> setpagedevice statusdict begin 3 setpapertray end" -*?InputSlot: "" -*CloseUI: *InputSlot - -*% MediaType Definitions -*OpenUI *MediaType/Medientyp: PickOne -*OrderDependency: 95 AnySetup *MediaType -*DefaultMediaType: PrnDef -*MediaType PrnDef/Nicht angegeben: "<> setpagedevice" -*MediaType Auto/Automatische Medienauswahl: "" -*MediaType Plain/Normalpapier: "<> setpagedevice" -*MediaType Transparency/Folie: "<> setpagedevice" -*MediaType Labels/Etiketten: "<> setpagedevice" -*MediaType Letterhead/Briefkopf: "<> setpagedevice" -*MediaType Bond/Feinpapier: "<> setpagedevice" -*MediaType Color/Mehrfarbig: "<> setpagedevice" -*MediaType Preprinted/Vorgedruckt: "<> setpagedevice" -*MediaType Prepunched/Vorgelocht: "<> setpagedevice" -*MediaType Recycled/Recycling-Papier: "<> setpagedevice" -*MediaType Cardstock/Karteikarte: "<> setpagedevice" -*MediaType Vellum/Pergament: "<> setpagedevice" -*MediaType Envelope/Umschlag: "<> setpagedevice" -*MediaType Rough/Grobpapier: "<> setpagedevice" -*MediaType Thick/Dick: "<> setpagedevice" -*MediaType CoatedPaper/Beschichtet: "<> setpagedevice" -*MediaType Highqlty/Hohe Qualitt: "<> setpagedevice" -*MediaType User1/Benutzerdefinierter Typ 1: "<> setpagedevice" -*MediaType User2/Benutzerdefinierter Typ 2: "<> setpagedevice" -*MediaType User3/Benutzerdefinierter Typ 3: "<> setpagedevice" -*MediaType User4/Benutzerdefinierter Typ 4: "<> setpagedevice" -*MediaType User5/Benutzerdefinierter Typ 5: "<> setpagedevice" -*MediaType User6/Benutzerdefinierter Typ 6: "<> setpagedevice" -*MediaType User7/Benutzerdefinierter Typ 7: "<> setpagedevice" -*MediaType User8/Benutzerdefinierter Typ 8: "<> setpagedevice" -*?MediaType: " - save - currentpagedevice /MediaType {get} stopped - {pop pop (Unknown)} {dup null eq {pop (Unknown)} if} ifelse = flush - restore" -*End -*CloseUI: *MediaType - -*RequiresPageRegion All: True - -*% Output Bin Definitions -*OpenUI *OutputBin/Ausgabefach: PickOne -*OrderDependency: 51 AnySetup *OutputBin -*DefaultOutputBin: None -*OutputBin None/Druckereinstellungen: "" -*OutputBin INNERTRAY/Inneres Fach: "0 statusdict /setoutputtray get exec" -*End -*OutputBin SEPARATORTRAY/Trennblattfach: "3 statusdict /setoutputtray get exec << /OutputFaceUp false >> setpagedevice" -*End -*?OutputBin: "" -*End -*CloseUI: *OutputBin - -*% Duplex Definitions -*OpenUI *Duplex/Duplex: PickOne -*OrderDependency: 50 AnySetup *Duplex -*DefaultDuplex: None -*Duplex None/Keine: "statusdict begin false setduplexmode false settumble end" -*Duplex DuplexTumble/Binden Kurze Seite: "statusdict begin true setduplexmode true settumble end" -*Duplex DuplexNoTumble/Binden Lange Seite: "statusdict begin true setduplexmode false settumble end" -*?Duplex: " - save - statusdict begin - duplexmode - {tumble {(DuplexTumble)}{(DuplexNoTumble)} ifelse} - {(None)} ifelse - = flush end restore" -*End -*CloseUI: *Duplex - -*% Job Spooling Definitions -*OpenUI *KCCollate/Job Zwischenspeicherung: PickOne -*OrderDependency: 20 AnySetup *KCCollate -*DefaultKCCollate: PrnDef -*KCCollate PrnDef/Druckereinstellungen: "" -*KCCollate On/Sortieren: "<< /Collate true >> setpagedevice" -*KCCollate None/Keine: "<< /Collate false >> setpagedevice" -*KCCollate QuickCopy/Schnellkopie: " - userdict /UICollateDetails known not {userdict /UICollateDetails 10 dict put} if - userdict /UICollateDetails get dup /Mode 0 put dup /Type 8 put /Hold 1 put <> setpagedevice" -*End -*KCCollate ProofHold/Prüfen und aufbewahren: " - userdict /UICollateDetails known not {userdict /UICollateDetails 10 dict put} if - userdict /UICollateDetails get dup /Mode 0 put dup /Type 8 put /Hold 3 put <> setpagedevice" -*End -*CloseUI: *KCCollate - -*% Management Code Definitions -*OpenUI *KmManagment/Auftragszhlung: PickOne -*OrderDependency: 60 AnySetup *KmManagment -*DefaultKmManagment: Default -*KmManagment Default/Aus: "" -*KmManagment MG00000000/00000000: "(00000000) statusdict /setmanagementnumber get exec" -*KmManagment MG00000001/00000001: "(00000001) statusdict /setmanagementnumber get exec" -*KmManagment MG00000002/00000002: "(00000002) statusdict /setmanagementnumber get exec" -*KmManagment MG00000003/00000003: "(00000003) statusdict /setmanagementnumber get exec" -*KmManagment MG00000004/00000004: "(00000004) statusdict /setmanagementnumber get exec" -*KmManagment MG00000005/00000005: "(00000005) statusdict /setmanagementnumber get exec" -*KmManagment MG00000006/00000006: "(00000006) statusdict /setmanagementnumber get exec" -*KmManagment MG00000007/00000007: "(00000007) statusdict /setmanagementnumber get exec" -*KmManagment MG00000008/00000008: "(00000008) statusdict /setmanagementnumber get exec" -*KmManagment MG00000009/00000009: "(00000009) statusdict /setmanagementnumber get exec" -*KmManagment MG00000010/00000010: "(00000010) statusdict /setmanagementnumber get exec" -*KmManagment MG00000011/00000011: "(00000011) statusdict /setmanagementnumber get exec" -*KmManagment MG00000012/00000012: "(00000012) statusdict /setmanagementnumber get exec" -*KmManagment MG00000013/00000013: "(00000013) statusdict /setmanagementnumber get exec" -*KmManagment MG00000014/00000014: "(00000014) statusdict /setmanagementnumber get exec" -*KmManagment MG00000015/00000015: "(00000015) statusdict /setmanagementnumber get exec" -*KmManagment MG00000016/00000016: "(00000016) statusdict /setmanagementnumber get exec" -*KmManagment MG00000017/00000017: "(00000017) statusdict /setmanagementnumber get exec" -*KmManagment MG00000018/00000018: "(00000018) statusdict /setmanagementnumber get exec" -*KmManagment MG00000019/00000019: "(00000019) statusdict /setmanagementnumber get exec" -*KmManagment MG00000020/00000020: "(00000020) statusdict /setmanagementnumber get exec" -*?KmManagment: "" -*End -*CloseUI: *KmManagment - -*% PPD Version Info -*OpenUI *KCVersion/PPD Version: PickOne -*OrderDependency: 25 AnySetup *KCVersion -*DefaultKCVersion: Default -*KCVersion Default/8.1710 [10-30-2017]: " -globaldict /ct_AddStdCIDMap known { -globaldict /ct_AddStdCIDMap get length 7 eq -{globaldict /ct_AddStdCIDMap get 0 get type /stringtype eq -{globaldict /ct_AddStdCIDMap get 1 get 0 eq -{globaldict /ct_AddStdCIDMap get 2 get () eq -{globaldict /ct_AddStdCIDMap get 3 get /SubFileDecode eq -{globaldict /ct_AddStdCIDMap get 4 get systemdict /filter get eq -{currentglobal true setglobal globaldict -/ct_AddStdCIDMap -globaldict /ct_AddStdCIDMap get dup -globaldict /ct_AddStdCIDMap get -0 get length 1 exch -put put setglobal -} if} if} if} if} if} if} if" -*End -*CloseUI: *KCVersion - -*% Font Information -*DefaultFont: Courier -*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM -*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM -*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM -*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM -*Font Bookman-Light: Standard "(001.004S)" Standard ROM -*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM -*Font Bookman-Demi: Standard "(001.004S)" Standard ROM -*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM -*Font Courier: Standard "(002.004S)" Standard ROM -*Font Courier-Oblique: Standard "(002.004S)" Standard ROM -*Font Courier-Bold: Standard "(002.004S)" Standard ROM -*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM -*Font Helvetica: Standard "(001.006S)" Standard ROM -*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM -*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM -*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM -*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM -*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM -*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM -*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM -*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM -*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM -*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM -*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM -*Font Palatino-Roman: Standard "(001.005S)" Standard ROM -*Font Palatino-Italic: Standard "(001.005S)" Standard ROM -*Font Palatino-Bold: Standard "(001.005S)" Standard ROM -*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM -*Font Symbol: Special "(001.007S)" Special ROM -*Font Times-Roman: Standard "(001.007S)" Standard ROM -*Font Times-Italic: Standard "(001.007S)" Standard ROM -*Font Times-Bold: Standard "(001.007S)" Standard ROM -*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM -*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM -*Font ZapfDingbats: Special "(001.004S)" Special ROM -*Font Albertus-Medium: Standard "(001.008S)" Standard ROM -*Font Albertus-ExtraBold: Standard "(001.008S)" Standard ROM -*Font AntiqueOlive: Standard "(001.008S)" Standard ROM -*Font AntiqueOlive-Italic: Standard "(001.008S)" Standard ROM -*Font AntiqueOlive-Bold: Standard "(001.008S)" Standard ROM -*Font Arial: Standard "(001.008S)" Standard ROM -*Font Arial-Italic: Standard "(001.008S)" Standard ROM -*Font Arial-Bold: Standard "(001.008S)" Standard ROM -*Font Arial-BoldItalic: Standard "(001.008S)" Standard ROM -*Font CGOmega: Standard "(001.008S)" Standard ROM -*Font CGOmega-Italic: Standard "(001.008S)" Standard ROM -*Font CGOmega-Bold: Standard "(001.008S)" Standard ROM -*Font CGOmega-BoldItalic: Standard "(001.008S)" Standard ROM -*Font CGTimes: Standard "(001.008S)" Standard ROM -*Font CGTimes-Italic: Standard "(001.008S)" Standard ROM -*Font CGTimes-Bold: Standard "(001.008S)" Standard ROM -*Font CGTimes-BoldItalic: Standard "(001.008S)" Standard ROM -*Font Clarendon-Condensed-Bold: Standard "(001.008S)" Standard ROM -*Font Coronet: Standard "(001.008S)" Standard ROM -*Font CourierHP: Standard "(001.008S)" Standard ROM -*Font CourierHP-Italic: Standard "(001.008S)" Standard ROM -*Font CourierHP-Bold: Standard "(001.008S)" Standard ROM -*Font CourierHP-BoldItalic: Standard "(001.008S)" Standard ROM -*Font Garamond-Antiqua: Standard "(001.008S)" Standard ROM -*Font Garamond-Halbfett: Standard "(001.008S)" Standard ROM -*Font Garamond-Kursiv: Standard "(001.008S)" Standard ROM -*Font Garamond-KursivHalbfett: Standard "(001.008S)" Standard ROM -*Font LetterGothic: Standard "(001.008S)" Standard ROM -*Font LetterGothic-Italic: Standard "(001.008S)" Standard ROM -*Font LetterGothic-Bold: Standard "(001.008S)" Standard ROM -*Font Marygold: Standard "(001.008S)" Standard ROM -*Font SymbolMT: Standard "(001.008S)" Standard ROM -*Font TimesNewRoman: Standard "(001.008S)" Standard ROM -*Font TimesNewRoman-Italic: Standard "(001.008S)" Standard ROM -*Font TimesNewRoman-BoldItalic: Standard "(001.008S)" Standard ROM -*Font TimesNewRoman-Bold: Standard "(001.008S)" Standard ROM -*Font Univers-Medium: Standard "(001.008S)" Standard ROM -*Font Univers-MediumItalic: Standard "(001.008S)" Standard ROM -*Font Univers-Bold: Standard "(001.008S)" Standard ROM -*Font Univers-BoldItalic: Standard "(001.008S)" Standard ROM -*Font Univers-Condensed-Medium: Standard "(001.008S)" Standard ROM -*Font Univers-Condensed-MediumItalic: Standard "(001.008S)" Standard ROM -*Font Univers-Condensed-Bold: Standard "(001.008S)" Standard ROM -*Font Univers-Condensed-BoldItalic: Standard "(001.008S)" Standard ROM -*Font Wingdings-Regular: Special "(001.008S)" Special ROM -*?FontQuery: " - save - /str 80 string dup 0 (fonts/) putinterval def - {count 1 gt - { exch dup str 6 94 getinterval cvs - (/) print print (:) print - FontDirectory exch known - {(Yes)}{(No)} ifelse = - }{exit} ifelse - } bind loop (*) - = flush restore" -*End -*?FontList: "save FontDirectory { pop == } bind forall flush (*) = flush restore" -*% Printer Messages -*Message: "%%[ exitserver: permanent state may be changed ]%%" -*Message: "%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%" -*Message: "\FontName\ not found, using Courier" - -*% Status (format: %%[ status: ]%% ) -*Status: "warming up"/warming up -*Status: "idle"/idle -*Status: "busy"/busy -*Status: "waiting"/waiting -*Status: "printing"/printing -*Status: "initializing"/initializing -*Status: "printing test page"/printing test page -*% Printer Error (format: %%[ PrinterError: ]%% ) -*PrinterError: "paper entry misfeed" -*PrinterError: "cover open" -*PrinterError: "no paper tray" -*PrinterError: "out of paper" -*PrinterError: "toner low (halt)" -*PrinterError: "warming up" -*PrinterError: "other reason" -*PrinterError: "video interface mode" -*PrinterError: "offline" -*PrinterError: "toner low (warning)" - -*% Input Sources (format: %%[ status: ;source: ]%% ) -*Source: "Serial" -*Source: "Parallel" -*Source: "LocalTalk" -*Source: "Option" - -*% End of PPD file for Kyocera ECOSYS M6630cidn (German) diff --git a/modules/desktop.nix b/modules/desktop.nix deleted file mode 100755 index 4ebc1b1..0000000 --- a/modules/desktop.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ pkgs, lib, config, office_stuff, ... }: - -let - - extra_office_packages = (lib.ifEnable config.fsr.enable_office_bloat (with pkgs; [ - vlc - libreoffice-fresh - okular - texlive.combined.scheme-full - ])); - - -in -{ - # enable XFCE as lightweight desktop environment - services = { - xserver.enable = true; - xserver.desktopManager.xfce.enable = true; - xserver.displayManager.defaultSession = "xfce"; - - # Configure keymap in X11 - xserver.layout = "de"; - xserver.xkbOptions = "eurosign:e,ctrl:nocaps,compose:prsc"; - - # enable touchpad support - xserver.libinput.enable = true; - }; - # enable sound - sound.enable = true; - sound.mediaKeys.enable = true; - hardware.pulseaudio.enable = true; - - # additional programs for a lightweight working office environment - environment.systemPackages = with pkgs; [ - ## audio management - pavucontrol - ## terminal, browsers, text editing - #vscodium - firefox - ] ++ extra_office_packages; - -} diff --git a/modules/infoscreen.nix b/modules/infoscreen.nix deleted file mode 100644 index 21c3a0e..0000000 --- a/modules/infoscreen.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ pkgs, lib, config, ... }: -let - fsr-infoscreen = pkgs.fsr-infoscreen; - -in -{ - - systemd = { - services."fsr-infoscreen" = { - enable = true; - wantedBy = [ "multi-user.target" ]; - script = '' - ${pkgs.python39}/bin/python39 ${fsr-infoscreen}/build/middleware/infoscreen.py - ''; - - serviceConfig = { - User = "infoscreen"; - Restart = "on-failure"; - }; - }; - }; - - users.users.infoscreen = { - name = "infoscreen"; - description = "custom user for service infoscreen service"; - isNormalUser = true; - }; - -} diff --git a/pkgs/server.nix b/pkgs/server.nix deleted file mode 100755 index 8e80004..0000000 --- a/pkgs/server.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib -, pkgs - #, buildpythonApplication - #, buildPythonPackage -, fetchFromGitHub - #, fetchPypi -}: -let - - dvb = pkgs.python39Packages.buildPythonPackage rec { - pname = "dvb"; - version = "1.2.0"; - - src = fetchFromGitHub { - owner = "revol-xut"; - repo = "dvbpy"; - rev = "66c975f58b9f831ff6044aa65da58c3246938e5e"; - sha256 = "sha256-OzK9r6tyyjawdDzqrDw9CFh0lf8Bn11rJpQl60YCoT8="; - }; - - doCheck = false; - propagatedBuildInputs = with pkgs.python39Packages; [ pyproj numpy requests ]; - }; - - flask-misaka = pkgs.python39Packages.buildPythonPackage rec { - pname = "flask-misaka"; - version = "1.0.0"; - - src = fetchFromGitHub { - owner = "singingwolfboy"; - repo = "flask-misaka"; - rev = "d960e512ac1ea16225d236984fcf130a46bb7b83"; - sha256 = "sha256-RYDD+Bj3+S2isTdccl04zvLjpbalQ5sqb3sYnUy1+bU="; - }; - - doCheck = false; - propagatedBuildInputs = with pkgs.python39Packages; [ flask misaka ]; - }; - - - -in -pkgs.python39Packages.buildPythonApplication rec { - pname = "fsr-infoscreen"; - version = "2.1.0"; - - src = fetchFromGitHub { - owner = "fsr"; - repo = "infoscreen"; - rev = "43fb1fdc9dd15ccf40ef28b448ac6cfd51f32bc4"; - sha256 = "sha256-KVIuL9g5gYC+3o2U7HQRqHQnU02kn7E9P7ZydFc/tyA="; - }; - nativeBuildInputs = with pkgs; [ pkg-config python3Packages.wrapPython ]; - propagatedBuildInputs = with pkgs.python39Packages; [ flask python-forecastio flask-misaka dvb ]; - buildInputs = with pkgs.python39Packages; [ flask python-forecastio flask-misaka dvb ]; - pythonPath = with pkgs.python39Packages; [ flask python-forecastio flask-misaka dvb ]; - - installPhase = '' - mkdir -p $out/build/middleware - install -Dm755 middleware/infoscreen.py $out/build/middleware - mkdir -p $out/share/infoscreen - wrapPythonPrograms - ''; - - makeWrapperArgs = [ - "--prefix PYTHONPATH : $out/share/fsr-infoscreen" - ]; - - meta = with lib; { - description = "A minimal python server which supplies the fsr infoscreen with information."; - homepage = "https://github.com/fsr/infoscreen"; - license = licenses.mit; - maintainers = with maintainers; [ revol-xut ]; - }; -} From 9be95bc7d7eeff22433c912c9be5a248b126e0c7 Mon Sep 17 00:00:00 2001 From: Fugi Date: Thu, 6 Jul 2023 01:10:47 +0200 Subject: [PATCH 10/14] Fix IPv6 mail sending, add noreply alias --- modules/mail.nix | 64 +++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/modules/mail.nix b/modules/mail.nix index fd1c09d..a1e93e3 100644 --- a/modules/mail.nix +++ b/modules/mail.nix @@ -39,7 +39,7 @@ in domain = "${domain}"; origin = "${domain}"; destination = [ "${hostname}" "${domain}" "localhost" ]; - networks = [ "127.0.0.1" "141.30.30.169" ]; + networksStyle = "host"; # localhost and own public IP sslCert = "/var/lib/acme/${hostname}/fullchain.pem"; sslKey = "/var/lib/acme/${hostname}/key.pem"; relayDomains = [ "hash:/var/lib/mailman/data/postfix_domains" ]; @@ -47,7 +47,6 @@ in extraAliases = '' # Taken from kaki, maybe we can throw out some at some point # General redirections for pseudo accounts - postmaster: root bin: root daemon: root named: root @@ -62,9 +61,13 @@ in dumper: root operator: root abuse: postmaster + postmaster: root # trap decode to catch security attacks decode: root + + # yeet into the void + noreply: /dev/null ''; config = { home_mailbox = "Maildir/"; @@ -153,37 +156,36 @@ in pkgs.dovecot_pigeonhole ]; extraConfig = '' - auth_username_format = %Ln - passdb { - driver = ldap - args = ${dovecot-ldap-args} + auth_username_format = %Ln + passdb { + driver = ldap + args = ${dovecot-ldap-args} + } + userdb { + driver = ldap + args = ${dovecot-ldap-args} + } + service auth { + unix_listener /var/lib/postfix/auth { + group = postfix + mode = 0660 + user = postfix } - userdb { - driver = ldap - args = ${dovecot-ldap-args} + } + service managesieve-login { + inet_listener sieve { + port = 4190 } - service auth { - unix_listener /var/lib/postfix/auth { - group = postfix - mode = 0660 - user = postfix - } + service_count = 1 + } + service lmtp { + unix_listener dovecot-lmtp { + group = postfix + mode = 0600 + user = postfix } - service managesieve-login { - inet_listener sieve { - port = 4190 - } - - service_count = 1 - } - service lmtp { - unix_listener dovecot-lmtp { - group = postfix - mode = 0600 - user = postfix - } - client_limit = 1 - } + client_limit = 1 + } ''; }; opendkim = { @@ -191,7 +193,7 @@ in domains = "csl:${config.fsr.domain}"; selector = config.networking.hostName; configFile = pkgs.writeText "opendkim-config" '' - UMask 0117 + UMask 0117 ''; }; rspamd = { From 6c542cadb9d0ab251797999c053d0558f9debc97 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Fri, 7 Jul 2023 10:14:02 +0200 Subject: [PATCH 11/14] fix sending to aliases --- modules/mail.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/mail.nix b/modules/mail.nix index a1e93e3..c68a5d3 100644 --- a/modules/mail.nix +++ b/modules/mail.nix @@ -102,6 +102,7 @@ in ]; # smtpd_sender_login_maps = [ "ldap:${ldap-senders}" ]; alias_maps = [ "hash:/etc/aliases" ]; + alias_database = [ "hash:/etc/aliases" ]; # alias_maps = [ "hash:/etc/aliases" "ldap:${ldap-aliases}" ]; smtpd_milters = [ "local:/run/opendkim/opendkim.sock" ]; non_smtpd_milters = [ "local:/var/run/opendkim/opendkim.sock" ]; @@ -109,7 +110,7 @@ in smtpd_sasl_path = "/var/lib/postfix/auth"; smtpd_sasl_type = "dovecot"; #mailman stuff - local_transport = "lmtp:unix:/run/dovecot2/dovecot-lmtp"; + mailbox_transport = "lmtp:unix:/run/dovecot2/dovecot-lmtp"; transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ]; local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" "ldap:${config.sops.secrets."postfix_ldap_aliases".path}" ]; From bbda0accc42c11ee8e9c4a5eda5bcce5977bbbb1 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Fri, 7 Jul 2023 10:55:23 +0200 Subject: [PATCH 12/14] fix postfix ldap query --- secrets/quitte.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/secrets/quitte.yaml b/secrets/quitte.yaml index 70daf77..2c2add9 100644 --- a/secrets/quitte.yaml +++ b/secrets/quitte.yaml @@ -15,7 +15,7 @@ mediawiki: postgres: ENC[AES256_GCM,data:XRfUc2PRMJcoILAnm5MWr2Cg5u4e/IhGMUnz/oIQSzY=,iv:8U+qlD1SQzxUyD/6QK4SdwRCDyMODK/lP0IDrLlcQ4U=,tag:2spNMj9dY2wWilOusq24yQ==,type:str] initial_admin: ENC[AES256_GCM,data:iET5rz9rygx49NDBjKwqAlRgpeS+jq5iM5zmjnoKcyk=,iv:11iDbCrpzjCdyAB22R8NknJ6vzcpVZXCXB3iWsGWXw0=,tag:1RCyg1ysOWaXKdqqdHqRrw==,type:str] ldapprovider: ENC[AES256_GCM,data:CPsrWmUviUpFIVVN/2a1lRjJCoZCWR9zrHm3T5Tv/YuXSYXStZGfBgXN96zhJUUpZcwiJq95o1sajyit+6itZCcGAPu0BTHSnNXRu1fgifonXE0ghw6rvzwkYpfBS+rfmBcG2wxX+7uZG3ulANYpvvGMxpKgM5IzQjE1sAytRDir6QeMGcFHP2gV4xQAdTNUZK2V+EKOlrcV5vTSzDSy3eXg18TVUgZqdxaQFfwnr2UN0eEEZ4Dn83G3QWsROZ0A7R3tuEmdAzmR8AdWBxfqCcOA8vZaOIOWb1AyobLCUaqQOj/SbGdgehMOQn1UcbRHpYQ2E9mvxD572uc/U5kzy/TbOLM34pkvckNrGfxwvqwbvXZrVP3gONY5CnJpk5XfVdT5Au/uwE5ZRs83ZEx31+85mpK3HecyBWRfWID0z2XS8PAU6G7ASQsXCh6sd5LFhL7zhxBQ4ENjT8pDi0OLYvw9VzPhPrdzooULeMytGitVWRtLsSzCn/D+U4x6EJLivLW6jv9SAIKg54fAjNEBYHh7GuHbr/VGtmiWKj6av2e3/BLgPOIyINzNv+X5QSsopZ2/yamPs+ARTOqAZvSyRgqereYoLZ5ZV15jIWiGc7HVfj/+Bk7cN4+VwFhzSuttp1DmvNNIWueeX69rdSqe41Y2lqKZ4ajOSIJ+YLP/dR0wvrVbd7QSP2OVRAnMugmeekbIuyIKPNsNJ183Z4y1m/ihIdRAzLnjSYuYCdWw3LXl5gM0ZTtGb7K+cIYcyJrS3fcaErDmqyI/LJoXNTo5CJI=,iv:ycKt8/awCo3HoO6Oa8H77GH9+m+xgR4kiXb7Cbf0wSY=,tag:b6pBoZs+E4CP+V9oZXrcoQ==,type:str] -postfix_ldap_aliases: ENC[AES256_GCM,data:SFCncYQAY2ZOA4d8YO58HQvUIRpevU6dX3BDv/pnB1JlvNmQH7oy4NZ4zf24/1i11EV7Z0NvPsa4sAqj8xRR++yyzeG9RQk3Pcst3AkFtA+MkNP0ueZJYsvLKyUE6G7UpzVVuLI+L5R121JrRp6+r5xqckOBNCBo73ulb7tC67hSfLA+ZNmDw+bKbshHej4l3hvM/c2sHLbcPp/+vxLXqthPR+y8lf6J/QgZ8Yzw1JxFVDO8ypaWpWZZvA3HbAzRJXxk2zxg+lpmgFsyzTXLZGhvf7NdRHUmTP9OgDFt/efhxpUvDYpDinzVOuFrYJGL/4U0LLvxtGQQaQ==,iv:dUx+BsJWaiZ6MeNB+OhrSxQf+co2USjJM5rKt7OP5GI=,tag:nOVLxEyIRSNnxGa8eHMmFQ==,type:str] +postfix_ldap_aliases: ENC[AES256_GCM,data:kpffdciWI08Of2fm2B1lZ4rOYIhWtoBTnpU1N0iwiStA81Yl/NMDgHDCVv79XY6SuFTCBd6npKNz/0ibBy1WDSrDQymV5MIUmWVPwLcBSNMjD0d69PJYdUDVLmyhNkjB2hEL9JaH1PiO4iBM5y9yZx1LT+zlauAZEJPFgO/MvjkMknHZPKnRpBtT8wKTWTYUtBvzQtlACLKdIF0t37Q2DZAMtWrAgsrH811zUbsxJbYDInvNDPDHZHS+ZfF0Q1vXDLWUm+zZij6KRAJdOuEU9dyzhU/t93+LO9zKADwyF1Xk+2Uh,iv:cEui6fcDDINpUUcLZxGwPBMP1PjQVNMdScgaWdnIJ80=,tag:/7/mZckPJ7YLuJMp/BqbOQ==,type:str] mautrix-telegram_env: ENC[AES256_GCM,data:2p5vYV+/vEDrrZItTcT1vxddv2tM7dLGBUmG+OXHccTzJ2UhyYpDGgUMr5KgObxvyssYBZTsvbV7QFN3sjcU/jVPx1qEUn6zyKO0HBQjrviVU3urx5zNOnCEHwDKyDrZ1Hu/CE6lpGNrtGlpewgOs/+84JZIZhC9qSuzDhN38sr4OGfMr29fMzafYC+TGHoZyA64GI9xz0KvXhwg6ci1hLtVWYEOFW2Nf8uLY8qkNLuDzA6bYx8rn3CEXoxiv0n4,iv:jmcWTyVkqu9nDc1ws2NxkMKrHPZ13i3jqDkk4Y0kejw=,tag:BjhmPc4lSbsZBmZ/q2CqGg==,type:str] sops: kms: [] @@ -32,8 +32,8 @@ sops: NEJBTHE2end1RDlHRTNFYlZjTjhib2cKmQRHpBKZ2DbQ5CfOwcSPfZAm9fnnpxUk +LcR8haK//O3N2uNf9etDW3VsT5ipPucCdFU1m/v9L5tcN6ZP8WP+w== -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-07-04T07:41:45Z" - mac: ENC[AES256_GCM,data:YLC02dhSSLl9C1B7wo/AJcY4a4zc1LIaA0PKH0H8uZ8I9Kh105yk4sc2cz15FVMLtkMeIdfnhmWxbnPyLbM0mA9bAYT9MQn65quEgDumr+XH0UW6m1e2S23/2fxTFH1xRWsu7/Kon/gdzLb5hf2m30eJAP7MrdpxDz28Q7ut1P4=,iv:9UC71WxpDt1bxWSu16Sc+OKpy6KmX0Ru+Q54LYuQCBU=,tag:CpNKSJem+XHimm+yzRpwaw==,type:str] + lastmodified: "2023-07-07T08:54:55Z" + mac: ENC[AES256_GCM,data:JlITbCiRVYkS9wWLxAOX3ZUtgtmBFiS4JeNt+3/prTScPVC3cqhZPx6UWfPh8hzS1NZGSJEy9J2roWm1DEZnj73cRmjwROAx/RiiGXJIkfxgUik4HFleIpKuOJ31Jkvl7m+YaEcgNail+KakKSy7H3Jf21Qu08fLGrN3kwt+JUA=,iv:GtuJrjnId9aU5f9o5hGYMNBN5FRB1OSLWCp9zFimhzA=,tag:RTL70JdR4C0UhXnMH01LPQ==,type:str] pgp: - created_at: "2023-04-23T17:48:54Z" enc: | From 105b2a0476d564a58b5dd28229ef7b544c5f9d18 Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Fri, 7 Jul 2023 11:03:57 +0200 Subject: [PATCH 13/14] mail: include aliases in local recipient maps --- modules/mail.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mail.nix b/modules/mail.nix index c68a5d3..3124c88 100644 --- a/modules/mail.nix +++ b/modules/mail.nix @@ -113,7 +113,7 @@ in mailbox_transport = "lmtp:unix:/run/dovecot2/dovecot-lmtp"; transport_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" ]; - local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" "ldap:${config.sops.secrets."postfix_ldap_aliases".path}" ]; + local_recipient_maps = [ "hash:/var/lib/mailman/data/postfix_lmtp" "ldap:${config.sops.secrets."postfix_ldap_aliases".path}" "$alias_maps" ]; }; }; dovecot2 = { From 6e4e213b0fbc6aa7fbff7387bfe58298b91788ee Mon Sep 17 00:00:00 2001 From: Rouven Seifert Date: Tue, 11 Jul 2023 18:21:48 +0200 Subject: [PATCH 14/14] chore: flake updates --- flake.lock | 20 ++++++++++---------- hosts/quitte/configuration.nix | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/flake.lock b/flake.lock index 97e3e93..0010fcb 100644 --- a/flake.lock +++ b/flake.lock @@ -22,11 +22,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1685004253, - "narHash": "sha256-AbVL1nN/TDicUQ5wXZ8xdLERxz/eJr7+o8lqkIOVuaE=", + "lastModified": 1689048911, + "narHash": "sha256-pODI2CkjWbSLo5nPMZoLtkRNJU/Nr3VSITXZqqmNtIk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3e01645c40b92d29f3ae76344a6d654986a91a91", + "rev": "8163a64662b43848802092d52015ef60777d6129", "type": "github" }, "original": { @@ -38,16 +38,16 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1684632198, - "narHash": "sha256-SdxMPd0WmU9MnDBuuy7ouR++GftrThmSGL7PCQj/uVI=", + "lastModified": 1688868408, + "narHash": "sha256-RR9N5XTAxSBhK8MCvLq9uxfdkd7etC//seVXldy0k48=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d0dade110dc7072d67ce27826cfe9ab2ab0cf247", + "rev": "510d721ce097150ae3b80f84b04b13b039186571", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-22.11", + "ref": "release-23.05", "repo": "nixpkgs", "type": "github" } @@ -67,11 +67,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1684637723, - "narHash": "sha256-0vAxL7MVMhGbTkAyvzLvleELHjVsaS43p+PR1h9gzNQ=", + "lastModified": 1688873469, + "narHash": "sha256-9TMSXvXmrr7bDYi+WeskWe/yho9UP01dGbV9vW5bRVc=", "owner": "Mic92", "repo": "sops-nix", - "rev": "4ccdfb573f323a108a44c13bb7730e42baf962a9", + "rev": "b2047c8fc963407916ad3834165309007dc5a1f7", "type": "github" }, "original": { diff --git a/hosts/quitte/configuration.nix b/hosts/quitte/configuration.nix index 40fa89f..0ddbc99 100644 --- a/hosts/quitte/configuration.nix +++ b/hosts/quitte/configuration.nix @@ -30,7 +30,7 @@ # Enable the OpenSSH daemon. services.openssh.enable = true; - services.openssh.settings.permitRootLogin = "yes"; + services.openssh.settings.PermitRootLogin = "yes"; # Open ports in the firewall. networking.firewall.allowedTCPPorts = [ 443 80 ];