From 3884243448869bdf09f6434b385e532c7c26ae88 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 12 Dec 2022 19:10:52 +0100 Subject: [PATCH] RIP jeschli --- .gitmodules | 3 - jeschli/1systems/bolide/config.nix | 125 - .../bolide/hardware-configuration.nix | 33 - jeschli/1systems/brauerei/config.nix | 200 -- .../brauerei/hardware-configuration.nix | 34 - jeschli/1systems/enklave/config.nix | 57 - jeschli/1systems/enklave/taskserver.nix | 10 - jeschli/1systems/reagenzglas/config.nix | 91 - jeschli/1systems/reagenzglas/desktop.nix | 25 - .../reagenzglas/hardware-configuration.nix | 37 - .../1systems/reagenzglas/i3-configuration.nix | 181 -- jeschli/2configs/IM.nix | 57 - jeschli/2configs/default.nix | 72 - jeschli/2configs/elisp | 1 - jeschli/2configs/emacs-org-agenda.nix | 2025 ----------------- jeschli/2configs/emacs.nix | 119 - jeschli/2configs/firefox.nix | 44 - jeschli/2configs/git.nix | 78 - jeschli/2configs/haskell.nix | 18 - jeschli/2configs/home-manager/default.nix | 9 - jeschli/2configs/i3.nix | 247 -- jeschli/2configs/officevpn.nix | 19 - .../2configs/os-templates/CentOS-7-64bit.nix | 16 - jeschli/2configs/python.nix | 9 - jeschli/2configs/retiolum.nix | 26 - jeschli/2configs/rust.nix | 8 - jeschli/2configs/steam.nix | 12 - jeschli/2configs/tests/dummy-secrets/empty | 0 jeschli/2configs/urxvt.nix | 39 - jeschli/2configs/vim.nix | 151 -- jeschli/2configs/virtualbox.nix | 23 - jeschli/2configs/xdg.nix | 14 - jeschli/2configs/xserver/Xmodmap.nix | 27 - jeschli/2configs/xserver/Xresources.nix | 56 - jeschli/2configs/xserver/default.nix | 130 -- jeschli/2configs/xserver/xserver.conf.nix | 40 - jeschli/2configs/zsh.nix | 138 -- jeschli/5pkgs/default.nix | 11 - .../audio-fingerprint-defender/default.nix | 40 - .../canvas-fingerprint-defender/default.nix | 40 - jeschli/5pkgs/firefox/dark-reader/default.nix | 28 - jeschli/5pkgs/firefox/default.nix | 18 - jeschli/5pkgs/firefox/firefox-with-config.nix | 487 ---- .../font-fingerprint-defender/default.nix | 40 - jeschli/5pkgs/firefox/hopper/default.nix | 45 - .../firefox/https-everywhere/default.nix | 29 - jeschli/5pkgs/firefox/pyocclient/default.nix | 26 - jeschli/5pkgs/firefox/rmount/default.nix | 34 - .../5pkgs/firefox/ublock-origin/default.nix | 28 - .../firefox/user-agent-switcher/default.nix | 40 - .../webgl-fingerprint-defender/default.nix | 40 - .../5pkgs/firefox/wl-clipboard/default.nix | 25 - jeschli/5pkgs/simple/default.nix | 18 - jeschli/default.nix | 9 - jeschli/krops.nix | 43 - 55 files changed, 5175 deletions(-) delete mode 100644 jeschli/1systems/bolide/config.nix delete mode 100644 jeschli/1systems/bolide/hardware-configuration.nix delete mode 100644 jeschli/1systems/brauerei/config.nix delete mode 100644 jeschli/1systems/brauerei/hardware-configuration.nix delete mode 100644 jeschli/1systems/enklave/config.nix delete mode 100644 jeschli/1systems/enklave/taskserver.nix delete mode 100644 jeschli/1systems/reagenzglas/config.nix delete mode 100644 jeschli/1systems/reagenzglas/desktop.nix delete mode 100644 jeschli/1systems/reagenzglas/hardware-configuration.nix delete mode 100644 jeschli/1systems/reagenzglas/i3-configuration.nix delete mode 100644 jeschli/2configs/IM.nix delete mode 100644 jeschli/2configs/default.nix delete mode 160000 jeschli/2configs/elisp delete mode 100644 jeschli/2configs/emacs-org-agenda.nix delete mode 100644 jeschli/2configs/emacs.nix delete mode 100644 jeschli/2configs/firefox.nix delete mode 100644 jeschli/2configs/git.nix delete mode 100644 jeschli/2configs/haskell.nix delete mode 100644 jeschli/2configs/home-manager/default.nix delete mode 100644 jeschli/2configs/i3.nix delete mode 100644 jeschli/2configs/officevpn.nix delete mode 100644 jeschli/2configs/os-templates/CentOS-7-64bit.nix delete mode 100644 jeschli/2configs/python.nix delete mode 100644 jeschli/2configs/retiolum.nix delete mode 100644 jeschli/2configs/rust.nix delete mode 100644 jeschli/2configs/steam.nix delete mode 100644 jeschli/2configs/tests/dummy-secrets/empty delete mode 100644 jeschli/2configs/urxvt.nix delete mode 100644 jeschli/2configs/vim.nix delete mode 100644 jeschli/2configs/virtualbox.nix delete mode 100644 jeschli/2configs/xdg.nix delete mode 100644 jeschli/2configs/xserver/Xmodmap.nix delete mode 100644 jeschli/2configs/xserver/Xresources.nix delete mode 100644 jeschli/2configs/xserver/default.nix delete mode 100644 jeschli/2configs/xserver/xserver.conf.nix delete mode 100644 jeschli/2configs/zsh.nix delete mode 100644 jeschli/5pkgs/default.nix delete mode 100644 jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix delete mode 100644 jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix delete mode 100644 jeschli/5pkgs/firefox/dark-reader/default.nix delete mode 100644 jeschli/5pkgs/firefox/default.nix delete mode 100644 jeschli/5pkgs/firefox/firefox-with-config.nix delete mode 100644 jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix delete mode 100644 jeschli/5pkgs/firefox/hopper/default.nix delete mode 100644 jeschli/5pkgs/firefox/https-everywhere/default.nix delete mode 100644 jeschli/5pkgs/firefox/pyocclient/default.nix delete mode 100644 jeschli/5pkgs/firefox/rmount/default.nix delete mode 100644 jeschli/5pkgs/firefox/ublock-origin/default.nix delete mode 100644 jeschli/5pkgs/firefox/user-agent-switcher/default.nix delete mode 100644 jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix delete mode 100644 jeschli/5pkgs/firefox/wl-clipboard/default.nix delete mode 100644 jeschli/5pkgs/simple/default.nix delete mode 100644 jeschli/default.nix delete mode 100644 jeschli/krops.nix diff --git a/.gitmodules b/.gitmodules index 869980fa0..5825f86da 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,3 @@ [submodule "lass/5pkgs/autowifi"] path = lass/5pkgs/autowifi url = https://github.com/Lassulus/autowifi -[submodule "jeschli/2configs/elisp"] - path = jeschli/2configs/elisp - url = https://github.com/Jeschli/misc-elisp-scripts.git diff --git a/jeschli/1systems/bolide/config.nix b/jeschli/1systems/bolide/config.nix deleted file mode 100644 index 49b814793..000000000 --- a/jeschli/1systems/bolide/config.nix +++ /dev/null @@ -1,125 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, pkgs, lib, ... }: -let - unstable = import { config = { allowUnfree = true; }; }; -in -{ - imports = - [ - ./hardware-configuration.nix - - - - - - ]; - - krebs.build.host = config.krebs.hosts.bolide; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - # boot.loader.grub.efiSupport = true; - # boot.loader.grub.efiInstallAsRemovable = true; - # boot.loader.efi.efiSysMountPoint = "/boot/efi"; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sdb"; # or "nodev" for efi only - boot.initrd.luks.devices = [ { - name = "bla"; - device = "/dev/disk/by-uuid/53f1eeaf-a7ac-456c-a2af-778dd8b8d5b0"; - preLVM = true; - allowDiscards = true; - } ]; -# networking.hostName = "bolide"; # Define your hostname. -# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; - networking.enableB43Firmware = true; #new - - # Select internationalisation properties. - # i18n = { - # consoleFont = "Lat2-Terminus16"; - # consoleKeyMap = "us"; - # defaultLocale = "en_US.UTF-8"; - # }; - - # Set your time zone. - # time.timeZone = "Europe/Amsterdam"; - - # List packages installed in system profile. To search by name, run: - # $ nix-env -qaP | grep wget - environment.shellAliases = { - n = "nix-shell"; - stocki = pkgs.writeDash "deploy" '' - cd ~/stockholm - exec nix-shell -I stockholm="$PWD" --run 'deploy --system="bolide"' - ''; - }; - nixpkgs.config.allowUnfree = true; - environment.systemPackages = with pkgs; [ - rofi - wget vim - # system helper - ag - curl - copyq - dmenu - git - i3lock - keepass - networkmanagerapplet - rsync - terminator - tmux - wget - # rxvt_unicode - # editors - emacs - # internet - thunderbird - chromium - google-chrome - # programming languages - vscode - go - gcc9 - ccls - unstable.clang_8 - ghc - python37 - python37Packages.pip - # go tools - golint - gotools - # dev tools - elmPackages.elm - gnumake - jetbrains.pycharm-professional - jetbrains.webstorm - jetbrains.goland - # document viewer - zathura - ]; - - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - - services.xserver.videoDrivers = [ "nvidia" ]; - -users.extraUsers.jeschli = { - isNormalUser = true; - extraGroups = ["docker" "vboxusers" "audio"]; - uid = 1000; - }; - - hardware.pulseaudio.enable = true; - # This value determines the NixOS release with which your system is to be - # compatible, in order to avoid breaking some software such as database - # servers. You should change this only after NixOS release notes say you - # should. - system.stateVersion = "17.09"; # Did you read the comment? - -} - diff --git a/jeschli/1systems/bolide/hardware-configuration.nix b/jeschli/1systems/bolide/hardware-configuration.nix deleted file mode 100644 index 042b746ef..000000000 --- a/jeschli/1systems/bolide/hardware-configuration.nix +++ /dev/null @@ -1,33 +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, ... }: - -{ - imports = - [ - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; - boot.kernelModules = [ "kvm-intel" "wl" ]; - boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; - - fileSystems."/" = - { device = "/dev/bolide-pool/bolide-root"; - fsType = "ext4"; - }; - - fileSystems."/home" = - { device = "/dev/bolide-pool/bolide-home"; - fsType = "ext4"; - }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/3aeb67c4-5b6e-4df2-8013-607fe0fb8525"; - fsType = "ext4"; - }; - swapDevices = [ ]; - - nix.maxJobs = lib.mkDefault 8; - powerManagement.cpuFreqGovernor = "powersave"; - hardware.pulseaudio.enable = true; -} diff --git a/jeschli/1systems/brauerei/config.nix b/jeschli/1systems/brauerei/config.nix deleted file mode 100644 index 860c5d11c..000000000 --- a/jeschli/1systems/brauerei/config.nix +++ /dev/null @@ -1,200 +0,0 @@ -{ config, pkgs, lib, ... }: -let - mainUser = config.krebs.build.user.name; - unstable = import { config = { allowUnfree = true; }; }; -in -{ - imports = [ - - ./hardware-configuration.nix - - - - - - ]; - krebs.build.host = config.krebs.hosts.brauerei; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - boot.loader.grub.efiSupport = true; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; - # or "nodev" for efi only - boot.initrd.luks.devices = [ { - name = "root"; - device = "/dev/sda2"; - preLVM = true; - allowDiscards = true; - } ]; - networking.networkmanager.enable = true; - time.timeZone = "Europe/Amsterdam"; - - nixpkgs.config.allowUnfree = true; - - environment.shellAliases = { - # emacs aliases - ed = "emacsclient"; - edc = "emacsclient --create-frame"; - # nix aliases - ns = "nix-shell"; - # krops - deploy = pkgs.writeDash "deploy" '' - set -eu - export SYSTEM="$1" - $(nix-build $HOME/stockholm/jeschli/krops.nix --no-out-link --argstr name "$SYSTEM" -A deploy) - ''; - }; - - environment.systemPackages = with pkgs; [ - # system helper - acpi - ag - copyq - curl - dmenu - aspell - ispell - rofi - xdotool - git - gnupg - i3lock - keepass - networkmanagerapplet - pavucontrol - rsync - terminator - tmux - wget - # editors - emacs - # internet - chromium - firefox - google-chrome - thunderbird - # programming languages - elixir - elmPackages.elm - exercism - gcc9 - ccls - unstable.clang_8 - ghc - go - python37 - python37Packages.pip - pipenv - # dev tools - gnumake - jetbrains.clion - jetbrains.goland - jetbrains.pycharm-professional - jetbrains.webstorm - vscode - # document viewer - evince - zathura - # go tools - golint - gotools - # rust - cargo - rustracer - rustup - # orga tools - taskwarrior - # xorg - xorg.xbacklight - # tokei - tokei - ]; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.bash.enableCompletion = true; - # programs.mtr.enable = true; - programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; - -# home-manager.useUserPackages = true; -# home-manager.users.jeschli = { -# home.stateVersion = "19.03"; -# }; -# home-manager.enable = true; - -# home-manager.users.jeschli.home.file = { -# ".emacs.d" = { -# source = pkgs.fetchFromGitHub { -# owner = "jeschli"; -# repo = "emacs.d"; -# rev = "8ed6c40"; -# sha256 = "1q2y478srwp9f58l8cixnd2wj51909gp1z68k8pjlbjy2mrvibs0"; -# }; -# recursive = true; -# }; -# }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - services.openssh.enable = true; -# services.emacs.enable = true; - - virtualisation.docker.enable = true; - - services.xserver = { - enable = true; - - desktopManager = { - xfce.enable = true; - gnome3.enable = true; - }; - - }; - - services.xserver.windowManager.i3.enable = true; - - users.extraUsers.jeschli = { # TODO: define as krebs.users - isNormalUser = true; - extraGroups = ["docker" "vboxusers" "audio"]; - uid = 1000; - }; - users.extraUsers.blafoo = { - isNormalUser = true; - extraGroups = ["audio"]; - uid = 1002; - }; - users.extraUsers.jamie = { - isNormalUser = true; - uid = 1001; # TODO genid - }; - users.users.dev = { - isNormalUser = true; - openssh.authorizedKeys.keys = [ - config.krebs.users.lass.pubkey - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDB0d0JA20Vqn7I4lCte6Ne2EOmLZyMJyS9yIKJYXNLjbLwkQ4AYoQKantPBkTxR75M09E7d3j5heuWnCjWH45TrfQfe1EOSSC3ppCI6C6aIVlaNs+KhAYZS0m2Y8WkKn+TT5JLEa8yybYVN/RlZPOilpj/1QgjU6CQK+eJ1k/kK+QFXcwN82GDVh5kbTVcKUNp2tiyxFA+z9LY0xFDg/JHif2ROpjJVLQBJ+YPuOXZN5LDnVcuyLWKThjxy5srQ8iDjoxBg7dwLHjby5Mv41K4W61Gq6xM53gDEgfXk4cQhJnmx7jA/pUnsn2ZQDeww3hcc7vRf8soogXXz2KC9maiq0M/svaATsa9Ul4hrKnqPZP9Q8ScSEAUX+VI+x54iWrnW0p/yqBiRAzwsczdPzaQroUFTBxrq8R/n5TFdSHRMX7fYNOeVMjhfNca/gtfw9dYBVquCvuqUuFiRc0I7yK44rrMjjVQRcAbw6F8O7+04qWCmaJ8MPlmApwu2c05VMv9hiJo5p6PnzterRSLCqF6rIdhSnuOwrUIt1s/V+EEZXHCwSaNLaQJnYL0H9YjaIuGz4c8kVzxw4c0B6nl+hqW5y5/B2cuHiumnlRIDKOIzlv8ufhh21iN7QpIsPizahPezGoT1XqvzeXfH4qryo8O4yTN/PWoA+f7o9POU7L6hQ== lhebendanz@nixos" - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgHR1ZPDBMUjGWar/QmI2GiUkZM8pAXRyBDh8j3hGlxlS+0lsBV6bTAI5F13iyzTC4pCuEuDO2OlFB0scwjcOATci8phd8jTjOIDodqDaeQZXbshyuUBfyiAV6q0Sc+cUDV3D6GhzigH3t8EiQmvXmUGm916yFotT12o0dm83SCOh1nAf9ZveC1Hz/eEUTvgWvIb58OdUR5F/S5OVBnIIJZ8tcp0BP9lyjjJCcANWkYJlwaVcNNb0UarCRhvRtptFj+e/EPqQxSCaS2QcxW4zBsQ6C81TFf7WrdH+pwtFg0owlWsxv547sRLLiPf2h2YuQgSoAaW24N0SHhUqvOXd+JyaYw7MAF8Qh3jHm2iJQRgXNuIN0msFi1alwAevilL2mnfAt2biQ9sS9g+CVvQCwX3mg09E4Y3UmFLzvsJafD9meKVrjnDCcXySeAfts59eFmwKtMQ0qrEWaclzUiA6Ay3uD1zma8x1XELGTf8nxnXCGl8s2i2APn7y1Tcwep69DlENWSaReF5zBLIkCtIUDd+8xBFTF3yu5CpyRrRMKGa0QX/MtsQl4SGJWadOTwpM8joIbrIVfKkTNB2McxAjvo0iaRoBDm409gi2Ycy+NSoUV/KAIUG7OysAQZ62hr+E/Kw1ocJCIVI+9vzKx/EnEIHkCSwhYKl5393W7CShVJjJUcKcZddqX2smSShXq8rXPzhIHk1dAVn5Ff/vGZT9z9R0QN3z6Oa9QN5t5TjTdUDToqHTudqOpDxPl2c2yXK9wV+aoHFoML9AmbzTT1U1mKU7GXSoFACiKNzhDzkovyJGpWRyvisX5t75IfuVqvGGI8n3u8OhPMdyyOHRylVaciDzBMZ00xnIHB+dJG9IeYaMm9bW1Li4Jo0CWnogo2+olfHPMLijBuu+bsa5Kp6kFkccJYR/xqcSq0lVXkpGm692JI4dnMGjchipXEGh1gXof9jXHemMMBwjpLFGty+D0r5KdA33m+mIqc9hi0ShquA9nA7E1IxDlgE0gQg+P5ZOeeIN7q54AQmT8iCCCRyne2Kw57XxaGgZoLfj7VjjaeRlzBUglmtyq8B7/c0J3y41vt9Hxhj4sKD+vufZu+M9E6E936KsJlIi+3U0PtopM/b8L4jcH1JYpPljapsys8wkJZ1ymHf6Kj/0FHyi1V+GvquiVrlFN+aHECIzNlCiSMO4MqfPUO1A+s9zkG2ZgPNNv+LoZqnokjbmKM4kdxexMxaL/Eo9Nd/bzdYiFYXlllEL7Uox+yV0N3loQ2juh4zn+ctCnwHi+V9X4l4rB8amW96WrXiJ/WqEK2UO8St8dcQWhCsUUm2OawSrbYYZw5HhJwz/Rhz2UsdSc56s5OUiQLJqpILYvCnqSLlF4iZdRSdDQNpKn+le3CeGUl5UUuvK2BpKGrbPKx0i/2ZSEMxNA5GnDMx/NyiNyDBcoPu/XOlNi8VWsEbCtoTQRamvqHjOmNcPrxCxds+TaF8c0wMR720yj5sWq8= jeschli@nixos" - "ssh-rsa AAAAB4NzaC1yc2EAAAADAQABAAACAQC1x9+OtNfwv6LxblnLHeBElxoxLfaYUyvqMrBgnrlkaPjylPv711bvPslnt+YgdPsZQLCoQ2t5f0x0j7ZOMYE9eyRrnr67ITO+Od05u3eCypWOZulekkDL0ZDeYdvoZKOWnbKWnQVRfYuLOEL/g5/9E7MLtIdID8e98b/qHzs/+wmuuDR3zHCNic0BKixgET/EgFvLWezWxJ6D/TTv/5sDAfrC+RUN8ad14sxjKIkS3nkAlm8bhrCxQKaHLUcCJWiweW0gPWYSlp64VHS5lchvqCJlPYQdx0XbwolvlLYru0w74ljLbi3eL35GFFyHSeEjQ73EtVwo53uVKTy7SAORU7JNg6xL9H3ChOLOknN9oHs1K7t/maMsATle0HAFcTuaOhELUmHM8dCJh3nPVWIkzHQ4o3fyaogrpt7/V5j6R1/Ozn7P9n4OdqrjiaWqHlz/XHeYNNWte+a0EW+NubC83yS0Cu3uhZ36C3RET2vNM25CyYOBn4ccClAozayQIb6Cif0tCafMRPgkSlogQd8+SqNZpTnmtllIT3VnT5smgrufy6HETDkrHjApDrsqLtMCFY83RFwt4QLv/L93O7IsGifzmEfD9qD7YBSMNs8ihBIUXPk9doHXvYS506YroxWOxe/C0rzzbaogxQT6JMd1ozfXitRD9v7iBIFAT4Kzjw== christopher.kilian@dcso.de" - ]; - }; - - - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgHR1ZPDBMUjGWar/QmI2GiUkZM8pAXRyBDh8j3hGlxlS+0lsBV6bTAI5F13iyzTC4pCuEuDO2OlFB0scwjcOATci8phd8jTjOIDodqDaeQZXbshyuUBfyiAV6q0Sc+cUDV3D6GhzigH3t8EiQmvXmUGm916yFotT12o0dm83SCOh1nAf9ZveC1Hz/eEUTvgWvIb58OdUR5F/S5OVBnIIJZ8tcp0BP9lyjjJCcANWkYJlwaVcNNb0UarCRhvRtptFj+e/EPqQxSCaS2QcxW4zBsQ6C81TFf7WrdH+pwtFg0owlWsxv547sRLLiPf2h2YuQgSoAaW24N0SHhUqvOXd+JyaYw7MAF8Qh3jHm2iJQRgXNuIN0msFi1alwAevilL2mnfAt2biQ9sS9g+CVvQCwX3mg09E4Y3UmFLzvsJafD9meKVrjnDCcXySeAfts59eFmwKtMQ0qrEWaclzUiA6Ay3uD1zma8x1XELGTf8nxnXCGl8s2i2APn7y1Tcwep69DlENWSaReF5zBLIkCtIUDd+8xBFTF3yu5CpyRrRMKGa0QX/MtsQl4SGJWadOTwpM8joIbrIVfKkTNB2McxAjvo0iaRoBDm409gi2Ycy+NSoUV/KAIUG7OysAQZ62hr+E/Kw1ocJCIVI+9vzKx/EnEIHkCSwhYKl5393W7CShVJjJUcKcZddqX2smSShXq8rXPzhIHk1dAVn5Ff/vGZT9z9R0QN3z6Oa9QN5t5TjTdUDToqHTudqOpDxPl2c2yXK9wV+aoHFoML9AmbzTT1U1mKU7GXSoFACiKNzhDzkovyJGpWRyvisX5t75IfuVqvGGI8n3u8OhPMdyyOHRylVaciDzBMZ00xnIHB+dJG9IeYaMm9bW1Li4Jo0CWnogo2+olfHPMLijBuu+bsa5Kp6kFkccJYR/xqcSq0lVXkpGm692JI4dnMGjchipXEGh1gXof9jXHemMMBwjpLFGty+D0r5KdA33m+mIqc9hi0ShquA9nA7E1IxDlgE0gQg+P5ZOeeIN7q54AQmT8iCCCRyne2Kw57XxaGgZoLfj7VjjaeRlzBUglmtyq8B7/c0J3y41vt9Hxhj4sKD+vufZu+M9E6E936KsJlIi+3U0PtopM/b8L4jcH1JYpPljapsys8wkJZ1ymHf6Kj/0FHyi1V+GvquiVrlFN+aHECIzNlCiSMO4MqfPUO1A+s9zkG2ZgPNNv+LoZqnokjbmKM4kdxexMxaL/Eo9Nd/bzdYiFYXlllEL7Uox+yV0N3loQ2juh4zn+ctCnwHi+V9X4l4rB8amW96WrXiJ/WqEK2UO8St8dcQWhCsUUm2OawSrbYYZw5HhJwz/Rhz2UsdSc56s5OUiQLJqpILYvCnqSLlF4iZdRSdDQNpKn+le3CeGUl5UUuvK2BpKGrbPKx0i/2ZSEMxNA5GnDMx/NyiNyDBcoPu/XOlNi8VWsEbCtoTQRamvqHjOmNcPrxCxds+TaF8c0wMR720yj5sWq8= jeschli@nixos" - ]; - - # This value determines the NixOS release with which your system is to be - # compatible, in order to avoid breaking some software such as database - # servers. You should change this only after NixOS release notes say you - # should. - system.stateVersion = "17.09"; # Did you read the comment? - - hardware.trackpoint = { - enable = true; - sensitivity = 220; - speed = 0; - emulateWheel = true; - }; - -} diff --git a/jeschli/1systems/brauerei/hardware-configuration.nix b/jeschli/1systems/brauerei/hardware-configuration.nix deleted file mode 100644 index 2cb3e6661..000000000 --- a/jeschli/1systems/brauerei/hardware-configuration.nix +++ /dev/null @@ -1,34 +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, ... }: - -{ - imports = - [ - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sdhci_pci" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/e264fc21-45bb-4224-93fc-b0e19c2c3478"; - fsType = "ext4"; - }; - - fileSystems."/home" = - { device = "/dev/disk/by-uuid/bd0846ce-7d39-4329-bcb4-7c76becd6ab1"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/42BF-0795"; - fsType = "vfat"; - }; - - swapDevices = [ ]; - - hardware.pulseaudio.enable = true; - nix.maxJobs = lib.mkDefault 4; -} diff --git a/jeschli/1systems/enklave/config.nix b/jeschli/1systems/enklave/config.nix deleted file mode 100644 index 86d21f7d3..000000000 --- a/jeschli/1systems/enklave/config.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - imports = [ - - - - - - { - networking.dhcpcd.allowInterfaces = [ - "enp*" - "eth*" - "ens*" - ]; - } - { - services.openssh.enable = true; - } - { - sound.enable = false; - } - { - users.extraUsers = { - root.initialPassword = "pfeife123"; - root.openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgHR1ZPDBMUjGWar/QmI2GiUkZM8pAXRyBDh8j3hGlxlS+0lsBV6bTAI5F13iyzTC4pCuEuDO2OlFB0scwjcOATci8phd8jTjOIDodqDaeQZXbshyuUBfyiAV6q0Sc+cUDV3D6GhzigH3t8EiQmvXmUGm916yFotT12o0dm83SCOh1nAf9ZveC1Hz/eEUTvgWvIb58OdUR5F/S5OVBnIIJZ8tcp0BP9lyjjJCcANWkYJlwaVcNNb0UarCRhvRtptFj+e/EPqQxSCaS2QcxW4zBsQ6C81TFf7WrdH+pwtFg0owlWsxv547sRLLiPf2h2YuQgSoAaW24N0SHhUqvOXd+JyaYw7MAF8Qh3jHm2iJQRgXNuIN0msFi1alwAevilL2mnfAt2biQ9sS9g+CVvQCwX3mg09E4Y3UmFLzvsJafD9meKVrjnDCcXySeAfts59eFmwKtMQ0qrEWaclzUiA6Ay3uD1zma8x1XELGTf8nxnXCGl8s2i2APn7y1Tcwep69DlENWSaReF5zBLIkCtIUDd+8xBFTF3yu5CpyRrRMKGa0QX/MtsQl4SGJWadOTwpM8joIbrIVfKkTNB2McxAjvo0iaRoBDm409gi2Ycy+NSoUV/KAIUG7OysAQZ62hr+E/Kw1ocJCIVI+9vzKx/EnEIHkCSwhYKl5393W7CShVJjJUcKcZddqX2smSShXq8rXPzhIHk1dAVn5Ff/vGZT9z9R0QN3z6Oa9QN5t5TjTdUDToqHTudqOpDxPl2c2yXK9wV+aoHFoML9AmbzTT1U1mKU7GXSoFACiKNzhDzkovyJGpWRyvisX5t75IfuVqvGGI8n3u8OhPMdyyOHRylVaciDzBMZ00xnIHB+dJG9IeYaMm9bW1Li4Jo0CWnogo2+olfHPMLijBuu+bsa5Kp6kFkccJYR/xqcSq0lVXkpGm692JI4dnMGjchipXEGh1gXof9jXHemMMBwjpLFGty+D0r5KdA33m+mIqc9hi0ShquA9nA7E1IxDlgE0gQg+P5ZOeeIN7q54AQmT8iCCCRyne2Kw57XxaGgZoLfj7VjjaeRlzBUglmtyq8B7/c0J3y41vt9Hxhj4sKD+vufZu+M9E6E936KsJlIi+3U0PtopM/b8L4jcH1JYpPljapsys8wkJZ1ymHf6Kj/0FHyi1V+GvquiVrlFN+aHECIzNlCiSMO4MqfPUO1A+s9zkG2ZgPNNv+LoZqnokjbmKM4kdxexMxaL/Eo9Nd/bzdYiFYXlllEL7Uox+yV0N3loQ2juh4zn+ctCnwHi+V9X4l4rB8amW96WrXiJ/WqEK2UO8St8dcQWhCsUUm2OawSrbYYZw5HhJwz/Rhz2UsdSc56s5OUiQLJqpILYvCnqSLlF4iZdRSdDQNpKn+le3CeGUl5UUuvK2BpKGrbPKx0i/2ZSEMxNA5GnDMx/NyiNyDBcoPu/XOlNi8VWsEbCtoTQRamvqHjOmNcPrxCxds+TaF8c0wMR720yj5sWq8= jeschli@nixos" - ]; - jeschli = { - name = "jeschli"; - uid = 1000; - home = "/home/jeschli"; - group = "users"; - createHome = true; - useDefaultShell = true; - extraGroups = [ - ]; - openssh.authorizedKeys.keys = [ -"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEZgHR1ZPDBMUjGWar/QmI2GiUkZM8pAXRyBDh8j3hGlxlS+0lsBV6bTAI5F13iyzTC4pCuEuDO2OlFB0scwjcOATci8phd8jTjOIDodqDaeQZXbshyuUBfyiAV6q0Sc+cUDV3D6GhzigH3t8EiQmvXmUGm916yFotT12o0dm83SCOh1nAf9ZveC1Hz/eEUTvgWvIb58OdUR5F/S5OVBnIIJZ8tcp0BP9lyjjJCcANWkYJlwaVcNNb0UarCRhvRtptFj+e/EPqQxSCaS2QcxW4zBsQ6C81TFf7WrdH+pwtFg0owlWsxv547sRLLiPf2h2YuQgSoAaW24N0SHhUqvOXd+JyaYw7MAF8Qh3jHm2iJQRgXNuIN0msFi1alwAevilL2mnfAt2biQ9sS9g+CVvQCwX3mg09E4Y3UmFLzvsJafD9meKVrjnDCcXySeAfts59eFmwKtMQ0qrEWaclzUiA6Ay3uD1zma8x1XELGTf8nxnXCGl8s2i2APn7y1Tcwep69DlENWSaReF5zBLIkCtIUDd+8xBFTF3yu5CpyRrRMKGa0QX/MtsQl4SGJWadOTwpM8joIbrIVfKkTNB2McxAjvo0iaRoBDm409gi2Ycy+NSoUV/KAIUG7OysAQZ62hr+E/Kw1ocJCIVI+9vzKx/EnEIHkCSwhYKl5393W7CShVJjJUcKcZddqX2smSShXq8rXPzhIHk1dAVn5Ff/vGZT9z9R0QN3z6Oa9QN5t5TjTdUDToqHTudqOpDxPl2c2yXK9wV+aoHFoML9AmbzTT1U1mKU7GXSoFACiKNzhDzkovyJGpWRyvisX5t75IfuVqvGGI8n3u8OhPMdyyOHRylVaciDzBMZ00xnIHB+dJG9IeYaMm9bW1Li4Jo0CWnogo2+olfHPMLijBuu+bsa5Kp6kFkccJYR/xqcSq0lVXkpGm692JI4dnMGjchipXEGh1gXof9jXHemMMBwjpLFGty+D0r5KdA33m+mIqc9hi0ShquA9nA7E1IxDlgE0gQg+P5ZOeeIN7q54AQmT8iCCCRyne2Kw57XxaGgZoLfj7VjjaeRlzBUglmtyq8B7/c0J3y41vt9Hxhj4sKD+vufZu+M9E6E936KsJlIi+3U0PtopM/b8L4jcH1JYpPljapsys8wkJZ1ymHf6Kj/0FHyi1V+GvquiVrlFN+aHECIzNlCiSMO4MqfPUO1A+s9zkG2ZgPNNv+LoZqnokjbmKM4kdxexMxaL/Eo9Nd/bzdYiFYXlllEL7Uox+yV0N3loQ2juh4zn+ctCnwHi+V9X4l4rB8amW96WrXiJ/WqEK2UO8St8dcQWhCsUUm2OawSrbYYZw5HhJwz/Rhz2UsdSc56s5OUiQLJqpILYvCnqSLlF4iZdRSdDQNpKn+le3CeGUl5UUuvK2BpKGrbPKx0i/2ZSEMxNA5GnDMx/NyiNyDBcoPu/XOlNi8VWsEbCtoTQRamvqHjOmNcPrxCxds+TaF8c0wMR720yj5sWq8= jeschli@nixos" - ]; - }; - }; - } - { - services.taskserver = { - enable = true; - fqdn = "enklave.r"; - listenHost = "::"; - listenPort = 53589; - organisations.lass.users = [ "jeschli" ]; - }; - networking.firewall.allowedTCPPorts = [ 53589 8001 ]; - } - ]; - - krebs.build.host = config.krebs.hosts.enklave; -} diff --git a/jeschli/1systems/enklave/taskserver.nix b/jeschli/1systems/enklave/taskserver.nix deleted file mode 100644 index 23b235d70..000000000 --- a/jeschli/1systems/enklave/taskserver.nix +++ /dev/null @@ -1,10 +0,0 @@ - { - services.taskserver = { - enable = true; - fqdn = "enklave.r"; - listenHost = "::"; - listenPort = 53589; - organisations.lass.users = [ "jeschli" ]; - }; - networking.firewall.allowedTCPPorts = [ 53589 ]; - } diff --git a/jeschli/1systems/reagenzglas/config.nix b/jeschli/1systems/reagenzglas/config.nix deleted file mode 100644 index dec69563f..000000000 --- a/jeschli/1systems/reagenzglas/config.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ config, pkgs, ... }: - -{ - imports = - [ - - - - - - - ./desktop.nix - ./i3-configuration.nix - ./hardware-configuration.nix - ]; - - # EFI systemd boot loader - boot.loader.systemd-boot.enable = true; - - # Wireless network with network manager - krebs.build.host = config.krebs.hosts.reagenzglas; - # networking.hostName = "nixos"; # Define your hostname. - networking.networkmanager.enable = true; - - # Allow unfree - nixpkgs.config.allowUnfree = true; - - # Select internationalisation properties. - i18n = { - consoleKeyMap = "us"; - defaultLocale = "en_US.UTF-8"; - }; - - # Set your time zone. - time.timeZone = "Europe/Berlin"; - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - ag - alacritty - google-chrome - chromium - copyq - direnv - go - git - gitAndTools.hub - sbcl - rofi - vim - wget - ]; - - users.users.ombi = { - isNormalUser = true; - extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - }; - - users.users.jeschli = { - isNormalUser = true; - extraGroups = [ "audio" ]; - }; - -# services.xserver.synaptics.enable = true; - services.xserver.libinput.enable = true; - services.xserver.libinput.disableWhileTyping = true; - - hardware.pulseaudio.enable = true; - - #Enable ssh daemon - services.openssh.enable = true; - - #Enable clight - services.clight.enable = true; - services.geoclue2.enable = true; - location.provider = "geoclue2"; - - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDM1xtX/SF2IzfAIzrXvH4HsW05eTBX8U8MYlEPadq0DS/nHC45hW2PSEUOVsH0UhBRAB+yClVLyN+JAYsuOoQacQqAVq9R7HAoFITdYTMJCxVs4urSRv0pWwTopRIh1rlI+Q0QfdMoeVtO2ZKG3KoRM+APDy2dsX8LTtWjXmh/ZCtpGl1O8TZtz2ZyXyv9OVDPnQiFwPU3Jqs2Z036c+kwxWlxYc55FRuqwRtQ48c/ilPMu+ZvQ22j1Ch8lNuliyAg1b8pZdOkMJF3R8b46IQ8FEqkr3L1YQygYw2M50B629FPgHgeGPMz3mVd+5lzP+okbhPJjMrUqZAUwbMGwGzZ ombi@nixos" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKFXgtbgeivxlMKkoEJ4ANhtR+LRMSPrsmL4U5grFUME jeschli@nixos" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG7C3bgoL9VeVl8pgu8sp3PCOs6TXk4R9y7JKJAHGsfm root@baeckerei" - ]; - - # This value determines the NixOS release with which your system is to be - # compatible, in order to avoid breaking some software such as database - # servers. You should change this only after NixOS release notes say you - # should. - system.stateVersion = "19.03"; # Did you read the comment? - -} diff --git a/jeschli/1systems/reagenzglas/desktop.nix b/jeschli/1systems/reagenzglas/desktop.nix deleted file mode 100644 index 88eae086f..000000000 --- a/jeschli/1systems/reagenzglas/desktop.nix +++ /dev/null @@ -1,25 +0,0 @@ -# Configuration for the desktop environment - -{ config, lib, pkgs, ... }: -{ - # Configure basic X-server stuff: - services.xserver = { - enable = true; - xkbOptions = "caps:super"; - exportConfiguration = true; - - displayManager.lightdm.enable = true; - }; - - # Configure fonts - fonts = { - fonts = with pkgs; [ - corefonts - font-awesome-ttf - noto-fonts-cjk - noto-fonts-emoji - powerline-fonts - helvetica-neue-lt-std - ]; - }; -} diff --git a/jeschli/1systems/reagenzglas/hardware-configuration.nix b/jeschli/1systems/reagenzglas/hardware-configuration.nix deleted file mode 100644 index 55f5532d6..000000000 --- a/jeschli/1systems/reagenzglas/hardware-configuration.nix +++ /dev/null @@ -1,37 +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, ... }: - -{ - imports = - [ - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; - boot.initrd.kernelModules = [ "dm-snapshot" ]; - boot.initrd.luks.devices = [ - { - name = "root"; - device = "/dev/nvme0n1p8"; - preLVM = true; - } - ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/4d01936e-c876-42c3-962a-d4a20ad0e2e0"; - fsType = "ext4"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/D455-E4CC"; - fsType = "vfat"; - }; - - swapDevices = [ ]; - - nix.maxJobs = lib.mkDefault 8; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; -} diff --git a/jeschli/1systems/reagenzglas/i3-configuration.nix b/jeschli/1systems/reagenzglas/i3-configuration.nix deleted file mode 100644 index 88f63426d..000000000 --- a/jeschli/1systems/reagenzglas/i3-configuration.nix +++ /dev/null @@ -1,181 +0,0 @@ -{pkgs, environment, config, lib, ... }: - -with pkgs; - -let - i3_config_file = pkgs.writeText "config" '' - set $mod Mod4 - - font pango:monospace 8 - - #font pango:DejaVu Sans Mono 8 - - # Before i3 v4.8, we used to recommend this one as the default: - # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 - # The font above is very space-efficient, that is, it looks good, sharp and - # clear in small sizes. However, its unicode glyph coverage is limited, the old - # X core fonts rendering does not support right-to-left and this being a bitmap - # font, it doesn’t scale on retina/hidpi displays. - - # Use Mouse+$mod to drag floating windows to their wanted position - floating_modifier $mod - - # start a terminal - bindsym $mod+Return exec alacritty - - # kill focused window - bindsym $mod+Shift+q kill - - # start dmenu (a program launcher) - # bindsym $mod+d exec dmenu_run - - # start dmenu (a program launcher) - bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -modi drun#run -combi-modi drun#run -show combi -show-icons -display-combi run - - bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select - - bindsym $mod+F1 exec xinput --list | grep Touchpad | sed 's/.*id=\([0-9][0-9]\).*/\1/' | xargs xinput disable - bindsym $mod+F2 exec xinput --list | grep Touchpad | sed 's/.*id=\([0-9][0-9]\).*/\1/' | xargs xinput enable - - # There also is the (new) i3-dmenu-desktop which only displays applications - # shipping a .desktop file. It is a wrapper around dmenu, so you need that - # installed. - # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop - - # change focus - bindsym $mod+j focus left - bindsym $mod+k focus down - bindsym $mod+l focus up - bindsym $mod+semicolon focus right - - # alternatively, you can use the cursor keys: - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # move focused window - bindsym $mod+Shift+j move left - bindsym $mod+Shift+k move down - bindsym $mod+Shift+l move up - bindsym $mod+Shift+colon move right - - # alternatively, you can use the cursor keys: - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - - # split in horizontal orientation - bindsym $mod+h split h - - # split in vertical orientation - bindsym $mod+v split v - - # enter fullscreen mode for the focused container - bindsym $mod+f fullscreen toggle - - # change container layout (stacked, tabbed, toggle split) - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - - # toggle tiling / floating - bindsym $mod+Shift+space floating toggle - - # change focus between tiling / floating windows - bindsym $mod+space focus mode_toggle - - # focus the parent container - bindsym $mod+a focus parent - - # focus the child container - #bindsym $mod+d focus child - - # Define names for default workspaces for which we configure key bindings later on. - # We use variables to avoid repeating the names in multiple places. - set $ws1 "1" - set $ws2 "2" - set $ws3 "3" - set $ws4 "4" - set $ws5 "5" - set $ws6 "6" - set $ws7 "7" - set $ws8 "8" - set $ws9 "9" - set $ws10 "10" - - # switch to workspace - bindsym $mod+1 workspace $ws1 - bindsym $mod+2 workspace $ws2 - bindsym $mod+3 workspace $ws3 - bindsym $mod+4 workspace $ws4 - bindsym $mod+5 workspace $ws5 - bindsym $mod+6 workspace $ws6 - bindsym $mod+7 workspace $ws7 - bindsym $mod+8 workspace $ws8 - bindsym $mod+9 workspace $ws9 - bindsym $mod+0 workspace $ws10 - - # move focused container to workspace - bindsym $mod+Shift+1 move container to workspace $ws1 - bindsym $mod+Shift+2 move container to workspace $ws2 - bindsym $mod+Shift+3 move container to workspace $ws3 - bindsym $mod+Shift+4 move container to workspace $ws4 - bindsym $mod+Shift+5 move container to workspace $ws5 - bindsym $mod+Shift+6 move container to workspace $ws6 - bindsym $mod+Shift+7 move container to workspace $ws7 - bindsym $mod+Shift+8 move container to workspace $ws8 - bindsym $mod+Shift+9 move container to workspace $ws9 - bindsym $mod+Shift+0 move container to workspace $ws10 - - # reload the configuration file - bindsym $mod+Shift+c reload - # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) - bindsym $mod+Shift+r restart - # exit i3 (logs you out of your X session) - bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - - # resize window (you can also use the mouse for that) - mode "resize" { - # These bindings trigger as soon as you enter the resize mode - - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym semicolon resize grow width 10 px or 10 ppt - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape or $mod+r - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" - } - - bindsym $mod+r mode "resize" - - # Start i3bar to display a workspace bar (plus the system information i3status - # finds out, if available) - bar { - status_command i3status - } - ''; - -in { - - services.xserver.windowManager.i3 = { - enable = true; - package = pkgs.i3; - configFile = i3_config_file; - }; - -} diff --git a/jeschli/2configs/IM.nix b/jeschli/2configs/IM.nix deleted file mode 100644 index 2366726fb..000000000 --- a/jeschli/2configs/IM.nix +++ /dev/null @@ -1,57 +0,0 @@ -with (import ); -{ config, lib, pkgs, ... }: -let - tmux = pkgs.writeDashBin "tmux" '' - export TERM=xterm-256color - exec ${pkgs.tmux}/bin/tmux -f ${pkgs.writeText "tmux.conf" '' - set-option -g default-terminal screen-256color - ''} "$@" - ''; -in { - - services.bitlbee = { - enable = true; - portNumber = 6666; - plugins = [ - pkgs.bitlbee-facebook - pkgs.bitlbee-steam - pkgs.bitlbee-discord - ]; - libpurple_plugins = [ pkgs.telegram-purple ]; - }; - - users.extraUsers.chat = { - home = "/home/chat"; - uid = genid "chat"; - useDefaultShell = true; - createHome = true; - openssh.authorizedKeys.keys = with config.krebs.users; [ - jeschli.pubkey - jeschli-bln.pubkey - jeschli-brauerei.pubkey - jeschli-bolide.pubkey - ]; - packages = [ tmux ]; - }; - - - systemd.services.chat = { - description = "chat environment setup"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - restartIfChanged = false; - - path = [ - pkgs.rxvt_unicode.terminfo - ]; - - serviceConfig = { - User = "chat"; - RemainAfterExit = true; - Type = "oneshot"; - ExecStart = "${tmux}/bin/tmux -2 new-session -d -s IM ${pkgs.weechat}/bin/weechat"; - ExecStop = "${tmux}/bin/tmux kill-session -t IM"; - }; - }; -} diff --git a/jeschli/2configs/default.nix b/jeschli/2configs/default.nix deleted file mode 100644 index 8b61fa29c..000000000 --- a/jeschli/2configs/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ config, pkgs, ... }: -with import ; -{ - imports = [ -# ./vim.nix - ./retiolum.nix - ./zsh.nix - - { - environment.variables = { - NIX_PATH = mkForce "secrets=/var/src/stockholm/null:/var/src"; - }; - } - ]; - - nixpkgs.config.allowUnfree = true; - - environment.systemPackages = with pkgs; [ - #stockholm - git - gnumake - jq - parallel - proot - populate - - # aliases - (writeDashBin "irc" "ssh chat@enklave -t tmux a") - - #style - most - rxvt_unicode.terminfo - - #monitoring tools - htop - iotop - - #network - iptables - iftop - - #stuff for dl - aria2 - - #neat utils - file - kpaste - krebspaste - mosh - pciutils - psmisc - # q - # rs - tmux - untilport - usbutils - # logify - goify - vim - #unpack stuff - p7zip - unzip - unrar - - (pkgs.writeDashBin "sshn" '' - ${pkgs.openssh}/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@" - '') - ]; - - krebs.enable = true; - networking.hostName = config.krebs.build.host.name; -} diff --git a/jeschli/2configs/elisp b/jeschli/2configs/elisp deleted file mode 160000 index 279d6a01f..000000000 --- a/jeschli/2configs/elisp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 279d6a01f5abbab5d28d3a57549b7fec800a510e diff --git a/jeschli/2configs/emacs-org-agenda.nix b/jeschli/2configs/emacs-org-agenda.nix deleted file mode 100644 index 0420dc43d..000000000 --- a/jeschli/2configs/emacs-org-agenda.nix +++ /dev/null @@ -1,2025 +0,0 @@ -let - modifiedBerndHansen = '' -;; Based on http://doc.norang.ca/org-mode.html -;; Organize your life in plain text -;; TODO: minimize this section -(if (boundp 'org-mode-user-lisp-path) - (add-to-list 'load-path org-mode-user-lisp-path) - (add-to-list 'load-path (expand-file-name "~/git/org-mode/lisp"))) - -(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode)) -(require 'org) - -(add-to-list 'org-modules 'org-habit) - -;; -;; Standard key bindings -(global-set-key "\C-cl" 'org-store-link) -(global-set-key "\C-ca" 'org-agenda) -(global-set-key "\C-cb" 'org-iswitchb) - -;; The following setting is different from the document so that you -;; can override the document org-agenda-files by setting your -;; org-agenda-files in the variable org-user-agenda-files -;; -;; (if (boundp 'org-user-agenda-files) -;; (setq org-agenda-files org-user-agenda-files) -;; (setq org-agenda-files (quote ("~/git/org")))) - -;; Custom Key Bindings -(global-set-key (kbd "") 'org-agenda) -(global-set-key (kbd "") 'bh/widen) -(global-set-key (kbd " ") 'bh/show-org-agenda) -(global-set-key (kbd " b") 'bbdb) -(global-set-key (kbd " c") 'calendar) -(global-set-key (kbd " f") 'boxquote-insert-file) -(global-set-key (kbd " g") 'gnus) -(global-set-key (kbd " h") 'bh/hide-other) -(global-set-key (kbd " n") 'bh/toggle-next-task-display) - -(global-set-key (kbd " I") 'bh/punch-in) -(global-set-key (kbd " O") 'bh/punch-out) - -(global-set-key (kbd " o") 'bh/make-org-scratch) - -(global-set-key (kbd " r") 'boxquote-region) -(global-set-key (kbd " s") 'bh/switch-to-scratch) - -(global-set-key (kbd " t") 'bh/insert-inactive-timestamp) -(global-set-key (kbd " T") 'bh/toggle-insert-inactive-timestamp) - -(global-set-key (kbd " v") 'visible-mode) -(global-set-key (kbd " l") 'org-toggle-link-display) -(global-set-key (kbd " SPC") 'bh/clock-in-last-task) -(global-set-key (kbd "C-") 'previous-buffer) -(global-set-key (kbd "M-") 'org-toggle-inline-images) -(global-set-key (kbd "C-x n r") 'narrow-to-region) -(global-set-key (kbd "C-") 'next-buffer) -(global-set-key (kbd "") 'org-clock-goto) -(global-set-key (kbd "C-") 'org-clock-in) -(global-set-key (kbd "C-s-") 'bh/save-then-publish) -(global-set-key (kbd "C-c c") 'org-capture) - -(defun bh/hide-other () - (interactive) - (save-excursion - (org-back-to-heading 'invisible-ok) - (hide-other) - (org-cycle) - (org-cycle) - (org-cycle))) - -(defun bh/set-truncate-lines () - "Toggle value of truncate-lines and refresh window display." - (interactive) - (setq truncate-lines (not truncate-lines)) - ;; now refresh window display (an idiom from simple.el): - (save-excursion - (set-window-start (selected-window) - (window-start (selected-window))))) - -(defun bh/make-org-scratch () - (interactive) - (find-file "/tmp/publish/scratch.org") - (gnus-make-directory "/tmp/publish")) - -(defun bh/switch-to-scratch () - (interactive) - (switch-to-buffer "*scratch*")) - -(setq org-todo-keywords - (quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)") - (sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING")))) - -(setq org-todo-keyword-faces - (quote (("TODO" :foreground "red" :weight bold) - ("NEXT" :foreground "blue" :weight bold) - ("DONE" :foreground "forest green" :weight bold) - ("WAITING" :foreground "orange" :weight bold) - ("HOLD" :foreground "magenta" :weight bold) - ("CANCELLED" :foreground "forest green" :weight bold) - ("MEETING" :foreground "forest green" :weight bold) - ("PHONE" :foreground "forest green" :weight bold)))) - -(setq org-use-fast-todo-selection t) - -(setq org-treat-S-cursor-todo-selection-as-state-change nil) - -(setq org-todo-state-tags-triggers - (quote (("CANCELLED" ("CANCELLED" . t)) - ("WAITING" ("WAITING" . t)) - ("HOLD" ("WAITING") ("HOLD" . t)) - (done ("WAITING") ("HOLD")) - ("TODO" ("WAITING") ("CANCELLED") ("HOLD")) - ("NEXT" ("WAITING") ("CANCELLED") ("HOLD")) - ("DONE" ("WAITING") ("CANCELLED") ("HOLD"))))) - -(setq org-directory "~/projects/notes_privat") -(setq org-default-notes-file "~/projects/notes_privat/refile.org") - -;; I use C-c c to start capture mode -(global-set-key (kbd "C-c c") 'org-capture) - -;; Capture templates for: TODO tasks, Notes, appointments, phone calls, meetings, and org-protocol -(setq org-capture-templates - (quote (("t" "todo" entry (file org-default-notes-file) - "* TODO %?\n%U\n%a\n" :clock-in t :clock-resume t) - ("r" "respond" entry (file org-default-notes-file) - "* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n" :clock-in t :clock-resume t :immediate-finish t) - ("n" "note" entry (file org-default-notes-file) - "* %? :NOTE:\n%U\n%a\n" :clock-in t :clock-resume t) - ("j" "Journal" entry (file+datetree "~/git/org/diary.org") - "* %?\n%U\n" :clock-in t :clock-resume t) - ("w" "org-protocol" entry (file org-default-notes-file) - "* TODO Review %c\n%U\n" :immediate-finish t) - ("m" "Meeting" entry (file org-default-notes-file) - "* MEETING with %? :MEETING:\n%U" :clock-in t :clock-resume t) - ("p" "Phone call" entry (file org-default-notes-file) - "* PHONE %? :PHONE:\n%U" :clock-in t :clock-resume t) - ("h" "Habit" entry (file org-default-notes-file) - "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"%<<%Y-%m-%d %a .+1d/3d>>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n")))) - -;; Remove empty LOGBOOK drawers on clock out -(defun bh/remove-empty-drawer-on-clock-out () - (interactive) - (save-excursion - (beginning-of-line 0) - (org-remove-empty-drawer-at (point)))) - -(add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append) - -; Targets include this file and any file contributing to the agenda - up to 9 levels deep -(setq org-refile-targets (quote ((nil :maxlevel . 9) - (org-agenda-files :maxlevel . 9)))) - -; Use full outline paths for refile targets - we file directly with IDO -(setq org-refile-use-outline-path t) - -; Targets complete directly with IDO -(setq org-outline-path-complete-in-steps nil) - -; Allow refile to create parent tasks with confirmation -(setq org-refile-allow-creating-parent-nodes (quote confirm)) - -; Use IDO for both buffer and file completion and ido-everywhere to t -; (setq org-completion-use-ido t) -; (setq ido-everywhere t) -; (setq ido-max-directory-size 100000) -; (ido-mode (quote both)) -; ; Use the current window when visiting files and buffers with ido -; (setq ido-default-file-method 'selected-window) -; (setq ido-default-buffer-method 'selected-window) -; ; Use the current window for indirect buffer display -(setq org-indirect-buffer-display 'current-window) - -;;;; Refile settings -; Exclude DONE state tasks from refile targets -(defun bh/verify-refile-target () - "Exclude todo keywords with a done state from refile targets" - (not (member (nth 2 (org-heading-components)) org-done-keywords))) - -(setq org-refile-target-verify-function 'bh/verify-refile-target) - -;; Do not dim blocked tasks -(setq org-agenda-dim-blocked-tasks nil) - -;; Compact the block agenda view -(setq org-agenda-compact-blocks t) - -;; Custom agenda command definitions -(setq org-agenda-custom-commands - (quote (("N" "Notes" tags "NOTE" - ((org-agenda-overriding-header "Notes") - (org-tags-match-list-sublevels t))) - ("h" "Habits" tags-todo "STYLE=\"habit\"" - ((org-agenda-overriding-header "Habits") - (org-agenda-sorting-strategy - '(todo-state-down effort-up category-keep)))) - (" " "Agenda" - ((agenda "" nil) - (tags "REFILE" - ((org-agenda-overriding-header "Tasks to Refile") - (org-tags-match-list-sublevels nil))) - (tags-todo "-CANCELLED/!" - ((org-agenda-overriding-header "Stuck Projects") - (org-agenda-skip-function 'bh/skip-non-stuck-projects) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "-HOLD-CANCELLED/!" - ((org-agenda-overriding-header "Projects") - (org-agenda-skip-function 'bh/skip-non-projects) - (org-tags-match-list-sublevels 'indented) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "-CANCELLED/!NEXT" - ((org-agenda-overriding-header (concat "Project Next Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-projects-and-habits-and-single-tasks) - (org-tags-match-list-sublevels t) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(todo-state-down effort-up category-keep)))) - (tags-todo "-REFILE-CANCELLED-WAITING-HOLD/!" - ((org-agenda-overriding-header (concat "Project Subtasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-non-project-tasks) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "-REFILE-CANCELLED-WAITING-HOLD/!" - ((org-agenda-overriding-header (concat "Standalone Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-project-tasks) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "-CANCELLED+WAITING|HOLD/!" - ((org-agenda-overriding-header (concat "Waiting and Postponed Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-non-tasks) - (org-tags-match-list-sublevels nil) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks))) - (tags "-REFILE/" - ((org-agenda-overriding-header "Tasks to Archive") - (org-agenda-skip-function 'bh/skip-non-archivable-tasks) - (org-tags-match-list-sublevels nil)))) - nil) - ("1" "Agenda (@buero|@vpn|WORK)" - ((agenda "" nil) - (tags "REFILE" - ((org-agenda-overriding-header "Tasks to Refile") - (org-tags-match-list-sublevels nil))) - (tags-todo "@buero|@vpn|WORK-CANCELLED/!" - ((org-agenda-overriding-header "Stuck Projects") - (org-agenda-skip-function 'bh/skip-non-stuck-projects) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@buero|@vpn|WORK-HOLD-CANCELLED/!" - ((org-agenda-overriding-header "Projects") - (org-agenda-skip-function 'bh/skip-non-projects) - (org-tags-match-list-sublevels 'indented) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@buero|@vpn|WORK-CANCELLED/!NEXT" - ((org-agenda-overriding-header (concat "Project Next Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-projects-and-habits-and-single-tasks) - (org-tags-match-list-sublevels t) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(todo-state-down effort-up category-keep)))) - (tags-todo "@buero|@vpn|WORK-REFILE-CANCELLED-WAITING-HOLD/!" - ((org-agenda-overriding-header (concat "Project Subtasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-non-project-tasks) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@buero|@vpn|WORK-REFILE-CANCELLED-WAITING-HOLD/!" - ((org-agenda-overriding-header (concat "Standalone Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-project-tasks) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@buero|@vpn|WORK-CANCELLED+WAITING|HOLD/!" - ((org-agenda-overriding-header (concat "Waiting and Postponed Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-non-tasks) - (org-tags-match-list-sublevels nil) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks))) - (tags "@buero|@vpn|WORK-REFILE/" - ((org-agenda-overriding-header "Tasks to Archive") - (org-agenda-skip-function 'bh/skip-non-archivable-tasks) - (org-tags-match-list-sublevels nil)))) - nil) - ("2" "Agenda (@inet|@home))" - ((agenda "" nil) - (tags "REFILE" - ((org-agenda-overriding-header "Tasks to Refile") - (org-tags-match-list-sublevels nil))) - (tags-todo "@inet|@home-CANCELLED/!" - ((org-agenda-overriding-header "Stuck Projects") - (org-agenda-skip-function 'bh/skip-non-stuck-projects) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@inet|@home-HOLD-CANCELLED/!" - ((org-agenda-overriding-header "Projects") - (org-agenda-skip-function 'bh/skip-non-projects) - (org-tags-match-list-sublevels 'indented) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@inet|@home-CANCELLED/!NEXT" - ((org-agenda-overriding-header (concat "Project Next Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-projects-and-habits-and-single-tasks) - (org-tags-match-list-sublevels t) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(todo-state-down effort-up category-keep)))) - (tags-todo "@inet|@home-REFILE-CANCELLED-WAITING-HOLD/!" - ((org-agenda-overriding-header (concat "Project Subtasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-non-project-tasks) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@inet|@home-REFILE-CANCELLED-WAITING-HOLD/!" - ((org-agenda-overriding-header (concat "Standalone Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-project-tasks) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-with-date bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "@inet|@home-CANCELLED+WAITING|HOLD/!" - ((org-agenda-overriding-header (concat "Waiting and Postponed Tasks" - (if bh/hide-scheduled-and-waiting-next-tasks - "" - " (including WAITING and SCHEDULED tasks)"))) - (org-agenda-skip-function 'bh/skip-non-tasks) - (org-tags-match-list-sublevels nil) - (org-agenda-todo-ignore-scheduled bh/hide-scheduled-and-waiting-next-tasks) - (org-agenda-todo-ignore-deadlines bh/hide-scheduled-and-waiting-next-tasks))) - (tags "@inet|@home-REFILE/" - ((org-agenda-overriding-header "Tasks to Archive") - (org-agenda-skip-function 'bh/skip-non-archivable-tasks) - (org-tags-match-list-sublevels nil)))) - nil) - ))) - -(defun bh/org-auto-exclude-function (tag) - "Automatic task exclusion in the agenda with / RET" - (and (cond - ((string= tag "hold") - t) - ((string= tag "farm") - t)) - (concat "-" tag))) - -(setq org-agenda-auto-exclude-function 'bh/org-auto-exclude-function) - -;; -;; Resume clocking task when emacs is restarted -(org-clock-persistence-insinuate) -;; -;; Show lot of clocking history so it's easy to pick items off the C-F11 list -(setq org-clock-history-length 23) -;; Resume clocking task on clock-in if the clock is open -(setq org-clock-in-resume t) -;; Change tasks to NEXT when clocking in -(setq org-clock-in-switch-to-state 'bh/clock-in-to-next) -;; Separate drawers for clocking and logs -(setq org-drawers (quote ("PROPERTIES" "LOGBOOK"))) -;; Save clock data and state changes and notes in the LOGBOOK drawer -(setq org-clock-into-drawer t) -;; Sometimes I change tasks I'm clocking quickly - this removes clocked tasks with 0:00 duration -(setq org-clock-out-remove-zero-time-clocks t) -;; Clock out when moving task to a done state -(setq org-clock-out-when-done t) -;; Save the running clock and all clock history when exiting Emacs, load it on startup -(setq org-clock-persist t) -;; Do not prompt to resume an active clock -(setq org-clock-persist-query-resume nil) -;; Enable auto clock resolution for finding open clocks -(setq org-clock-auto-clock-resolution (quote when-no-clock-is-running)) -;; Include current clocking task in clock reports -(setq org-clock-report-include-clocking-task t) - -(setq bh/keep-clock-running nil) - -(defun bh/clock-in-to-next (kw) - "Switch a task from TODO to NEXT when clocking in. -Skips capture tasks, projects, and subprojects. -Switch projects and subprojects from NEXT back to TODO" - (when (not (and (boundp 'org-capture-mode) org-capture-mode)) - (cond - ((and (member (org-get-todo-state) (list "TODO")) - (bh/is-task-p)) - "NEXT") - ((and (member (org-get-todo-state) (list "NEXT")) - (bh/is-project-p)) - "TODO")))) - -(defun bh/find-project-task () - "Move point to the parent (project) task if any" - (save-restriction - (widen) - (let ((parent-task (save-excursion (org-back-to-heading 'invisible-ok) (point)))) - (while (org-up-heading-safe) - (when (member (nth 2 (org-heading-components)) org-todo-keywords-1) - (setq parent-task (point)))) - (goto-char parent-task) - parent-task))) - -(defun bh/punch-in (arg) - "Start continuous clocking and set the default task to the -selected task. If no task is selected set the Organization task -as the default task." - (interactive "p") - (setq bh/keep-clock-running t) - (if (equal major-mode 'org-agenda-mode) - ;; - ;; We're in the agenda - ;; - (let* ((marker (org-get-at-bol 'org-hd-marker)) - (tags (org-with-point-at marker (org-get-tags-at)))) - (if (and (eq arg 4) tags) - (org-agenda-clock-in '(16)) - (bh/clock-in-organization-task-as-default))) - ;; - ;; We are not in the agenda - ;; - (save-restriction - (widen) - ; Find the tags on the current task - (if (and (equal major-mode 'org-mode) (not (org-before-first-heading-p)) (eq arg 4)) - (org-clock-in '(16)) - (bh/clock-in-organization-task-as-default))))) - -(defun bh/punch-out () - (interactive) - (setq bh/keep-clock-running nil) - (when (org-clock-is-active) - (org-clock-out)) - (org-agenda-remove-restriction-lock)) - -(defun bh/clock-in-default-task () - (save-excursion - (org-with-point-at org-clock-default-task - (org-clock-in)))) - -(defun bh/clock-in-parent-task () - "Move point to the parent (project) task if any and clock in" - (let ((parent-task)) - (save-excursion - (save-restriction - (widen) - (while (and (not parent-task) (org-up-heading-safe)) - (when (member (nth 2 (org-heading-components)) org-todo-keywords-1) - (setq parent-task (point)))) - (if parent-task - (org-with-point-at parent-task - (org-clock-in)) - (when bh/keep-clock-running - (bh/clock-in-default-task))))))) - -(defvar bh/organization-task-id "eb155a82-92b2-4f25-a3c6-0304591af2f9") - -(defun bh/clock-in-organization-task-as-default () - (interactive) - (org-with-point-at (org-id-find bh/organization-task-id 'marker) - (org-clock-in '(16)))) - -(defun bh/clock-out-maybe () - (when (and bh/keep-clock-running - (not org-clock-clocking-in) - (marker-buffer org-clock-default-task) - (not org-clock-resolving-clocks-due-to-idleness)) - (bh/clock-in-parent-task))) - -(add-hook 'org-clock-out-hook 'bh/clock-out-maybe 'append) - -(require 'org-id) -(defun bh/clock-in-task-by-id (id) - "Clock in a task by id" - (org-with-point-at (org-id-find id 'marker) - (org-clock-in nil))) - -(defun bh/clock-in-last-task (arg) - "Clock in the interrupted task if there is one -Skip the default task and get the next one. -A prefix arg forces clock in of the default task." - (interactive "p") - (let ((clock-in-to-task - (cond - ((eq arg 4) org-clock-default-task) - ((and (org-clock-is-active) - (equal org-clock-default-task (cadr org-clock-history))) - (caddr org-clock-history)) - ((org-clock-is-active) (cadr org-clock-history)) - ((equal org-clock-default-task (car org-clock-history)) (cadr org-clock-history)) - (t (car org-clock-history))))) - (widen) - (org-with-point-at clock-in-to-task - (org-clock-in nil)))) - -(setq org-time-stamp-rounding-minutes (quote (1 1))) - -(setq org-agenda-clock-consistency-checks - (quote (:max-duration "4:00" - :min-duration 0 - :max-gap 0 - :gap-ok-around ("4:00")))) - -;; Sometimes I change tasks I'm clocking quickly - this removes clocked tasks with 0:00 duration -(setq org-clock-out-remove-zero-time-clocks t) - -;; Agenda clock report parameters -(setq org-agenda-clockreport-parameter-plist - (quote (:link t :maxlevel 5 :fileskip0 t :compact t :narrow 80))) - -; Set default column view headings: Task Effort Clock_Summary -(setq org-columns-default-format "%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM") - -; global Effort estimate values -; global STYLE property values for completion -(setq org-global-properties (quote (("Effort_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00") - ("STYLE_ALL" . "habit")))) - -;; Agenda log mode items to display (closed and state changes by default) -(setq org-agenda-log-mode-items (quote (closed state))) - -; Tags with fast selection keys -(setq org-tag-alist (quote ((:startgroup) - ("@errand" . ?E) - ("@buero" . ?B) - ("@omw" . ?O) - ("@vpn" . ?V) - ("@inet" . ?I) - ("@home" . ?H) - (:endgroup) - ("WAITING" . ?w) - ("HOLD" . ?h) - ("PERSONAL" . ?p) - ("WORK" . ?w) - ("ORG" . ?o) - ("crypt" . ?e) - ("NOTE" . ?n) - ("CANCELLED" . ?c) - ("FLAGGED" . ??)))) - -; Allow setting single tags without the menu -(setq org-fast-tag-selection-single-key (quote expert)) - -; For tag searches ignore tasks with scheduled and deadline dates -(setq org-agenda-tags-todo-honor-ignore-options t) - -(require 'bbdb) -(require 'bbdb-com) - -(global-set-key (kbd " p") 'bh/phone-call) - -;; -;; Phone capture template handling with BBDB lookup -;; Adapted from code by Gregory J. Grubbs -(defun bh/phone-call () - "Return name and company info for caller from bbdb lookup" - (interactive) - (let* (name rec caller) - (setq name (completing-read "Who is calling? " - (bbdb-hashtable) - 'bbdb-completion-predicate - 'confirm)) - (when (> (length name) 0) - ; Something was supplied - look it up in bbdb - (setq rec - (or (first - (or (bbdb-search (bbdb-records) name nil nil) - (bbdb-search (bbdb-records) nil name nil))) - name))) - - ; Build the bbdb link if we have a bbdb record, otherwise just return the name - (setq caller (cond ((and rec (vectorp rec)) - (let ((name (bbdb-record-name rec)) - (company (bbdb-record-company rec))) - (concat "[[bbdb:" - name "][" - name "]]" - (when company - (concat " - " company))))) - (rec) - (t "NameOfCaller"))) - (insert caller))) - -(setq org-agenda-span 'day) - -(setq org-stuck-projects (quote ("" nil nil ""))) - -(defun bh/is-project-p () - "Any task with a todo keyword subtask" - (save-restriction - (widen) - (let ((has-subtask) - (subtree-end (save-excursion (org-end-of-subtree t))) - (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1))) - (save-excursion - (forward-line 1) - (while (and (not has-subtask) - (< (point) subtree-end) - (re-search-forward "^\*+ " subtree-end t)) - (when (member (org-get-todo-state) org-todo-keywords-1) - (setq has-subtask t)))) - (and is-a-task has-subtask)))) - -(defun bh/is-project-subtree-p () - "Any task with a todo keyword that is in a project subtree. -Callers of this function already widen the buffer view." - (let ((task (save-excursion (org-back-to-heading 'invisible-ok) - (point)))) - (save-excursion - (bh/find-project-task) - (if (equal (point) task) - nil - t)))) - -(defun bh/is-task-p () - "Any task with a todo keyword and no subtask" - (save-restriction - (widen) - (let ((has-subtask) - (subtree-end (save-excursion (org-end-of-subtree t))) - (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1))) - (save-excursion - (forward-line 1) - (while (and (not has-subtask) - (< (point) subtree-end) - (re-search-forward "^\*+ " subtree-end t)) - (when (member (org-get-todo-state) org-todo-keywords-1) - (setq has-subtask t)))) - (and is-a-task (not has-subtask))))) - -(defun bh/is-subproject-p () - "Any task which is a subtask of another project" - (let ((is-subproject) - (is-a-task (member (nth 2 (org-heading-components)) org-todo-keywords-1))) - (save-excursion - (while (and (not is-subproject) (org-up-heading-safe)) - (when (member (nth 2 (org-heading-components)) org-todo-keywords-1) - (setq is-subproject t)))) - (and is-a-task is-subproject))) - -(defun bh/list-sublevels-for-projects-indented () - "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks. - This is normally used by skipping functions where this variable is already local to the agenda." - (if (marker-buffer org-agenda-restrict-begin) - (setq org-tags-match-list-sublevels 'indented) - (setq org-tags-match-list-sublevels nil)) - nil) - -(defun bh/list-sublevels-for-projects () - "Set org-tags-match-list-sublevels so when restricted to a subtree we list all subtasks. - This is normally used by skipping functions where this variable is already local to the agenda." - (if (marker-buffer org-agenda-restrict-begin) - (setq org-tags-match-list-sublevels t) - (setq org-tags-match-list-sublevels nil)) - nil) - -(defvar bh/hide-scheduled-and-waiting-next-tasks t) - -(defun bh/toggle-next-task-display () - (interactive) - (setq bh/hide-scheduled-and-waiting-next-tasks (not bh/hide-scheduled-and-waiting-next-tasks)) - (when (equal major-mode 'org-agenda-mode) - (org-agenda-redo)) - (message "%s WAITING and SCHEDULED NEXT Tasks" (if bh/hide-scheduled-and-waiting-next-tasks "Hide" "Show"))) - -(defun bh/skip-stuck-projects () - "Skip trees that are not stuck projects" - (save-restriction - (widen) - (let ((next-headline (save-excursion (or (outline-next-heading) (point-max))))) - (if (bh/is-project-p) - (let* ((subtree-end (save-excursion (org-end-of-subtree t))) - (has-next )) - (save-excursion - (forward-line 1) - (while (and (not has-next) (< (point) subtree-end) (re-search-forward "^\\*+ NEXT " subtree-end t)) - (unless (member "WAITING" (org-get-tags-at)) - (setq has-next t)))) - (if has-next - nil - next-headline)) ; a stuck project, has subtasks but no next task - nil)))) - -(defun bh/skip-non-stuck-projects () - "Skip trees that are not stuck projects" - ;; (bh/list-sublevels-for-projects-indented) - (save-restriction - (widen) - (let ((next-headline (save-excursion (or (outline-next-heading) (point-max))))) - (if (bh/is-project-p) - (let* ((subtree-end (save-excursion (org-end-of-subtree t))) - (has-next )) - (save-excursion - (forward-line 1) - (while (and (not has-next) (< (point) subtree-end) (re-search-forward "^\\*+ NEXT " subtree-end t)) - (unless (member "WAITING" (org-get-tags-at)) - (setq has-next t)))) - (if has-next - next-headline - nil)) ; a stuck project, has subtasks but no next task - next-headline)))) - -(defun bh/skip-non-projects () - "Skip trees that are not projects" - ;; (bh/list-sublevels-for-projects-indented) - (if (save-excursion (bh/skip-non-stuck-projects)) - (save-restriction - (widen) - (let ((subtree-end (save-excursion (org-end-of-subtree t)))) - (cond - ((bh/is-project-p) - nil) - ((and (bh/is-project-subtree-p) (not (bh/is-task-p))) - nil) - (t - subtree-end)))) - (save-excursion (org-end-of-subtree t)))) - -(defun bh/skip-non-tasks () - "Show non-project tasks. -Skip project and sub-project tasks, habits, and project related tasks." - (save-restriction - (widen) - (let ((next-headline (save-excursion (or (outline-next-heading) (point-max))))) - (cond - ((bh/is-task-p) - nil) - (t - next-headline))))) - -(defun bh/skip-project-trees-and-habits () - "Skip trees that are projects" - (save-restriction - (widen) - (let ((subtree-end (save-excursion (org-end-of-subtree t)))) - (cond - ((bh/is-project-p) - subtree-end) - ((org-is-habit-p) - subtree-end) - (t - nil))))) - -(defun bh/skip-projects-and-habits-and-single-tasks () - "Skip trees that are projects, tasks that are habits, single non-project tasks" - (save-restriction - (widen) - (let ((next-headline (save-excursion (or (outline-next-heading) (point-max))))) - (cond - ((org-is-habit-p) - next-headline) - ((and bh/hide-scheduled-and-waiting-next-tasks - (member "WAITING" (org-get-tags-at))) - next-headline) - ((bh/is-project-p) - next-headline) - ((and (bh/is-task-p) (not (bh/is-project-subtree-p))) - next-headline) - (t - nil))))) - -(defun bh/skip-project-tasks-maybe () - "Show tasks related to the current restriction. -When restricted to a project, skip project and sub project tasks, habits, NEXT tasks, and loose tasks. -When not restricted, skip project and sub-project tasks, habits, and project related tasks." - (save-restriction - (widen) - (let* ((subtree-end (save-excursion (org-end-of-subtree t))) - (next-headline (save-excursion (or (outline-next-heading) (point-max)))) - (limit-to-project (marker-buffer org-agenda-restrict-begin))) - (cond - ((bh/is-project-p) - next-headline) - ((org-is-habit-p) - subtree-end) - ((and (not limit-to-project) - (bh/is-project-subtree-p)) - subtree-end) - ((and limit-to-project - (bh/is-project-subtree-p) - (member (org-get-todo-state) (list "NEXT"))) - subtree-end) - (t - nil))))) - -(defun bh/skip-project-tasks () - "Show non-project tasks. -Skip project and sub-project tasks, habits, and project related tasks." - (save-restriction - (widen) - (let* ((subtree-end (save-excursion (org-end-of-subtree t)))) - (cond - ((bh/is-project-p) - subtree-end) - ((org-is-habit-p) - subtree-end) - ((bh/is-project-subtree-p) - subtree-end) - (t - nil))))) - -(defun bh/skip-non-project-tasks () - "Show project tasks. -Skip project and sub-project tasks, habits, and loose non-project tasks." - (save-restriction - (widen) - (let* ((subtree-end (save-excursion (org-end-of-subtree t))) - (next-headline (save-excursion (or (outline-next-heading) (point-max))))) - (cond - ((bh/is-project-p) - next-headline) - ((org-is-habit-p) - subtree-end) - ((and (bh/is-project-subtree-p) - (member (org-get-todo-state) (list "NEXT"))) - subtree-end) - ((not (bh/is-project-subtree-p)) - subtree-end) - (t - nil))))) - -(defun bh/skip-projects-and-habits () - "Skip trees that are projects and tasks that are habits" - (save-restriction - (widen) - (let ((subtree-end (save-excursion (org-end-of-subtree t)))) - (cond - ((bh/is-project-p) - subtree-end) - ((org-is-habit-p) - subtree-end) - (t - nil))))) - -(defun bh/skip-non-subprojects () - "Skip trees that are not projects" - (let ((next-headline (save-excursion (outline-next-heading)))) - (if (bh/is-subproject-p) - nil - next-headline))) - -(setq org-archive-mark-done nil) -(setq org-archive-location "%s_archive::* Archived Tasks") - -(defun bh/skip-non-archivable-tasks () - "Skip trees that are not available for archiving" - (save-restriction - (widen) - ;; Consider only tasks with done todo headings as archivable candidates - (let ((next-headline (save-excursion (or (outline-next-heading) (point-max)))) - (subtree-end (save-excursion (org-end-of-subtree t)))) - (if (member (org-get-todo-state) org-todo-keywords-1) - (if (member (org-get-todo-state) org-done-keywords) - (let* ((daynr (string-to-number (format-time-string "%d" (current-time)))) - (a-month-ago (* 60 60 24 (+ daynr 1))) - (last-month (format-time-string "%Y-%m-" (time-subtract (current-time) (seconds-to-time a-month-ago)))) - (this-month (format-time-string "%Y-%m-" (current-time))) - (subtree-is-current (save-excursion - (forward-line 1) - (and (< (point) subtree-end) - (re-search-forward (concat last-month "\\|" this-month) subtree-end t))))) - (if subtree-is-current - subtree-end ; Has a date in this month or last month, skip it - nil)) ; available to archive - (or subtree-end (point-max))) - next-headline)))) -(setq org-alphabetical-lists t) - -;; Explicitly load required exporters -(require 'ox-html) -(require 'ox-latex) -(require 'ox-ascii) - -(setq org-ditaa-jar-path "~/git/org-mode/contrib/scripts/ditaa.jar") -(setq org-plantuml-jar-path "~/java/plantuml.jar") - -(add-hook 'org-babel-after-execute-hook 'bh/display-inline-images 'append) - -; Make babel results blocks lowercase -(setq org-babel-results-keyword "results") - -(defun bh/display-inline-images () - (condition-case nil - (org-display-inline-images) - (error nil))) - -(org-babel-do-load-languages - (quote org-babel-load-languages) - (quote ((emacs-lisp . t) - (dot . t) - (ditaa . t) - (R . t) - (python . t) - (ruby . t) - (gnuplot . t) - (clojure . t) - (shell . t) - (ledger . t) - (org . t) - (plantuml . t) - (latex . t)))) - -; Do not prompt to confirm evaluation -; This may be dangerous - make sure you understand the consequences -; of setting this -- see the docstring for details -(setq org-confirm-babel-evaluate nil) - -; Use fundamental mode when editing plantuml blocks with C-c ' -(add-to-list 'org-src-lang-modes (quote ("plantuml" . fundamental))) - -;; Don't enable this because it breaks access to emacs from my Android phone -(setq org-startup-with-inline-images nil) - -; experimenting with docbook exports - not finished -(setq org-export-docbook-xsl-fo-proc-command "fop %s %s") -(setq org-export-docbook-xslt-proc-command "xsltproc --output %s /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl %s") -; -; Inline images in HTML instead of producting links to the image -(setq org-html-inline-images t) -; Do not use sub or superscripts - I currently don't need this functionality in my documents -(setq org-export-with-sub-superscripts nil) -; Use org.css from the norang website for export document stylesheets -(setq org-html-head-extra "") -(setq org-html-head-include-default-style nil) -; Do not generate internal css formatting for HTML exports -(setq org-export-htmlize-output-type (quote css)) -; Export with LaTeX fragments -(setq org-export-with-LaTeX-fragments t) -; Increase default number of headings to export -(setq org-export-headline-levels 6) - -; List of projects -; norang - http://www.norang.ca/ -; doc - http://doc.norang.ca/ -; org-mode-doc - http://doc.norang.ca/org-mode.html and associated files -; org - miscellaneous todo lists for publishing -(setq org-publish-project-alist - ; - ; http://www.norang.ca/ (norang website) - ; norang-org are the org-files that generate the content - ; norang-extra are images and css files that need to be included - ; norang is the top-level project that gets published - (quote (("norang-org" - :base-directory "~/git/www.norang.ca" - :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs" - :recursive t - :table-of-contents nil - :base-extension "org" - :publishing-function org-html-publish-to-html - :style-include-default nil - :section-numbers nil - :table-of-contents nil - :html-head "" - :author-info nil - :creator-info nil) - ("norang-extra" - :base-directory "~/git/www.norang.ca/" - :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs" - :base-extension "css\\|pdf\\|png\\|jpg\\|gif" - :publishing-function org-publish-attachment - :recursive t - :author nil) - ("norang" - :components ("norang-org" "norang-extra")) - ; - ; http://doc.norang.ca/ (norang website) - ; doc-org are the org-files that generate the content - ; doc-extra are images and css files that need to be included - ; doc is the top-level project that gets published - ("doc-org" - :base-directory "~/git/doc.norang.ca/" - :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" - :recursive nil - :section-numbers nil - :table-of-contents nil - :base-extension "org" - :publishing-function (org-html-publish-to-html org-org-publish-to-org) - :style-include-default nil - :html-head "" - :author-info nil - :creator-info nil) - ("doc-extra" - :base-directory "~/git/doc.norang.ca/" - :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" - :base-extension "css\\|pdf\\|png\\|jpg\\|gif" - :publishing-function org-publish-attachment - :recursive nil - :author nil) - ("doc" - :components ("doc-org" "doc-extra")) - ("doc-private-org" - :base-directory "~/git/doc.norang.ca/private" - :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs/private" - :recursive nil - :section-numbers nil - :table-of-contents nil - :base-extension "org" - :publishing-function (org-html-publish-to-html org-org-publish-to-org) - :style-include-default nil - :html-head "" - :auto-sitemap t - :sitemap-filename "index.html" - :sitemap-title "Norang Private Documents" - :sitemap-style "tree" - :author-info nil - :creator-info nil) - ("doc-private-extra" - :base-directory "~/git/doc.norang.ca/private" - :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs/private" - :base-extension "css\\|pdf\\|png\\|jpg\\|gif" - :publishing-function org-publish-attachment - :recursive nil - :author nil) - ("doc-private" - :components ("doc-private-org" "doc-private-extra")) - ; - ; Miscellaneous pages for other websites - ; org are the org-files that generate the content - ("org-org" - :base-directory "~/git/org/" - :publishing-directory "/ssh:www-data@www:~/org" - :recursive t - :section-numbers nil - :table-of-contents nil - :base-extension "org" - :publishing-function org-html-publish-to-html - :style-include-default nil - :html-head "" - :author-info nil - :creator-info nil) - ; - ; http://doc.norang.ca/ (norang website) - ; org-mode-doc-org this document - ; org-mode-doc-extra are images and css files that need to be included - ; org-mode-doc is the top-level project that gets published - ; This uses the same target directory as the 'doc' project - ("org-mode-doc-org" - :base-directory "~/git/org-mode-doc/" - :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" - :recursive t - :section-numbers nil - :table-of-contents nil - :base-extension "org" - :publishing-function (org-html-publish-to-html) - :plain-source t - :htmlized-source t - :style-include-default nil - :html-head "" - :author-info nil - :creator-info nil) - ("org-mode-doc-extra" - :base-directory "~/git/org-mode-doc/" - :publishing-directory "/ssh:www-data@www:~/doc.norang.ca/htdocs" - :base-extension "css\\|pdf\\|png\\|jpg\\|gif\\|org" - :publishing-function org-publish-attachment - :recursive t - :author nil) - ("org-mode-doc" - :components ("org-mode-doc-org" "org-mode-doc-extra")) - ; - ; http://doc.norang.ca/ (norang website) - ; org-mode-doc-org this document - ; org-mode-doc-extra are images and css files that need to be included - ; org-mode-doc is the top-level project that gets published - ; This uses the same target directory as the 'doc' project - ("tmp-org" - :base-directory "/tmp/publish/" - :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs/tmp" - :recursive t - :section-numbers nil - :table-of-contents nil - :base-extension "org" - :publishing-function (org-html-publish-to-html org-org-publish-to-org) - :html-head "" - :plain-source t - :htmlized-source t - :style-include-default nil - :auto-sitemap t - :sitemap-filename "index.html" - :sitemap-title "Test Publishing Area" - :sitemap-style "tree" - :author-info t - :creator-info t) - ("tmp-extra" - :base-directory "/tmp/publish/" - :publishing-directory "/ssh:www-data@www:~/www.norang.ca/htdocs/tmp" - :base-extension "css\\|pdf\\|png\\|jpg\\|gif" - :publishing-function org-publish-attachment - :recursive t - :author nil) - ("tmp" - :components ("tmp-org" "tmp-extra"))))) - -; I'm lazy and don't want to remember the name of the project to publish when I modify -; a file that is part of a project. So this function saves the file, and publishes -; the project that includes this file -; -; It's bound to C-S-F12 so I just edit and hit C-S-F12 when I'm done and move on to the next thing -(defun bh/save-then-publish (&optional force) - (interactive "P") - (save-buffer) - (org-save-all-org-buffers) - (let ((org-html-head-extra) - (org-html-validation-link "Validate XHTML 1.0")) - (org-publish-current-project force))) - -(global-set-key (kbd "C-s-") 'bh/save-then-publish) - -(setq org-latex-listings t) - -(setq org-html-xml-declaration (quote (("html" . "") - ("was-html" . "") - ("php" . "\"; ?>")))) - -(setq org-export-allow-BIND t) - -; Erase all reminders and rebuilt reminders for today from the agenda -(defun bh/org-agenda-to-appt () - (interactive) - (setq appt-time-msg-list nil) - (org-agenda-to-appt)) - -; Rebuild the reminders everytime the agenda is displayed -(add-hook 'org-finalize-agenda-hook 'bh/org-agenda-to-appt 'append) - -; This is at the end of my .emacs - so appointments are set up when Emacs starts -(bh/org-agenda-to-appt) - -; Activate appointments so we get notifications -(appt-activate t) - -; If we leave Emacs running overnight - reset the appointments one minute after midnight -(run-at-time "24:01" nil 'bh/org-agenda-to-appt) - -;; Enable abbrev-mode -(add-hook 'org-mode-hook (lambda () (abbrev-mode 1))) - -;; Skeletons -;; -;; sblk - Generic block #+begin_FOO .. #+end_FOO -(define-skeleton skel-org-block - "Insert an org block, querying for type." - "Type: " - "#+begin_" str "\n" - _ - \n - "#+end_" str "\n") - -(define-abbrev org-mode-abbrev-table "sblk" "" 'skel-org-block) - -;; splantuml - PlantUML Source block -(define-skeleton skel-org-block-plantuml - "Insert a org plantuml block, querying for filename." - "File (no extension): " - "#+begin_src plantuml :file " str ".png :cache yes\n" - _ - \n - "#+end_src\n") - -(define-abbrev org-mode-abbrev-table "splantuml" "" 'skel-org-block-plantuml) - -(define-skeleton skel-org-block-plantuml-activity - "Insert a org plantuml block, querying for filename." - "File (no extension): " - "#+begin_src plantuml :file " str "-act.png :cache yes :tangle " str "-act.txt\n" - (bh/plantuml-reset-counters) - "@startuml\n" - "skinparam activity {\n" - "BackgroundColor<> Cyan\n" - "}\n\n" - "title " str " - \n" - "note left: " str "\n" - "(*) --> \"" str "\"\n" - "--> (*)\n" - _ - \n - "@enduml\n" - "#+end_src\n") - -(defvar bh/plantuml-if-count 0) - -(defun bh/plantuml-if () - (incf bh/plantuml-if-count) - (number-to-string bh/plantuml-if-count)) - -(defvar bh/plantuml-loop-count 0) - -(defun bh/plantuml-loop () - (incf bh/plantuml-loop-count) - (number-to-string bh/plantuml-loop-count)) - -(defun bh/plantuml-reset-counters () - (setq bh/plantuml-if-count 0 - bh/plantuml-loop-count 0) - "") - -(define-abbrev org-mode-abbrev-table "sact" "" 'skel-org-block-plantuml-activity) - -(define-skeleton skel-org-block-plantuml-activity-if - "Insert a org plantuml block activity if statement" - "" - "if \"\" then\n" - " -> [condition] ==IF" (setq ifn (bh/plantuml-if)) "==\n" - " --> ==IF" ifn "M1==\n" - " -left-> ==IF" ifn "M2==\n" - "else\n" - "end if\n" - "--> ==IF" ifn "M2==") - -(define-abbrev org-mode-abbrev-table "sif" "" 'skel-org-block-plantuml-activity-if) - -(define-skeleton skel-org-block-plantuml-activity-for - "Insert a org plantuml block activity for statement" - "Loop for each: " - "--> ==LOOP" (setq loopn (bh/plantuml-loop)) "==\n" - "note left: Loop" loopn ": For each " str "\n" - "--> ==ENDLOOP" loopn "==\n" - "note left: Loop" loopn ": End for each " str "\n" ) - -(define-abbrev org-mode-abbrev-table "sfor" "" 'skel-org-block-plantuml-activity-for) - -(define-skeleton skel-org-block-plantuml-sequence - "Insert a org plantuml activity diagram block, querying for filename." - "File appends (no extension): " - "#+begin_src plantuml :file " str "-seq.png :cache yes :tangle " str "-seq.txt\n" - "@startuml\n" - "title " str " - \n" - "actor CSR as \"Customer Service Representative\"\n" - "participant CSMO as \"CSM Online\"\n" - "participant CSMU as \"CSM Unix\"\n" - "participant NRIS\n" - "actor Customer" - _ - \n - "@enduml\n" - "#+end_src\n") - -(define-abbrev org-mode-abbrev-table "sseq" "" 'skel-org-block-plantuml-sequence) - -;; sdot - Graphviz DOT block -(define-skeleton skel-org-block-dot - "Insert a org graphviz dot block, querying for filename." - "File (no extension): " - "#+begin_src dot :file " str ".png :cache yes :cmdline -Kdot -Tpng\n" - "graph G {\n" - _ - \n - "}\n" - "#+end_src\n") - -(define-abbrev org-mode-abbrev-table "sdot" "" 'skel-org-block-dot) - -;; sditaa - Ditaa source block -(define-skeleton skel-org-block-ditaa - "Insert a org ditaa block, querying for filename." - "File (no extension): " - "#+begin_src ditaa :file " str ".png :cache yes\n" - _ - \n - "#+end_src\n") - -(define-abbrev org-mode-abbrev-table "sditaa" "" 'skel-org-block-ditaa) - -;; selisp - Emacs Lisp source block -(define-skeleton skel-org-block-elisp - "Insert a org emacs-lisp block" - "" - "#+begin_src emacs-lisp\n" - _ - \n - "#+end_src\n") - -(define-abbrev org-mode-abbrev-table "selisp" "" 'skel-org-block-elisp) - -(defun bh/org-todo (arg) - (interactive "p") - (if (equal arg 4) - (save-restriction - (bh/narrow-to-org-subtree) - (org-show-todo-tree nil)) - (bh/narrow-to-org-subtree) - (org-show-todo-tree nil))) - -(global-set-key (kbd "") 'bh/widen) - -(defun bh/widen () - (interactive) - (if (equal major-mode 'org-agenda-mode) - (progn - (org-agenda-remove-restriction-lock) - (when org-agenda-sticky - (org-agenda-redo))) - (widen))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "W" (lambda () (interactive) (setq bh/hide-scheduled-and-waiting-next-tasks t) (bh/widen)))) - 'append) - -(defun bh/restrict-to-file-or-follow (arg) - "Set agenda restriction to 'file or with argument invoke follow mode. -I don't use follow mode very often but I restrict to file all the time -so change the default 'F' binding in the agenda to allow both" - (interactive "p") - (if (equal arg 4) - (org-agenda-follow-mode) - (widen) - (bh/set-agenda-restriction-lock 4) - (org-agenda-redo) - (beginning-of-buffer))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "F" 'bh/restrict-to-file-or-follow)) - 'append) - -(defun bh/narrow-to-org-subtree () - (widen) - (org-narrow-to-subtree) - (save-restriction - (org-agenda-set-restriction-lock))) - -(defun bh/narrow-to-subtree () - (interactive) - (if (equal major-mode 'org-agenda-mode) - (progn - (org-with-point-at (org-get-at-bol 'org-hd-marker) - (bh/narrow-to-org-subtree)) - (when org-agenda-sticky - (org-agenda-redo))) - (bh/narrow-to-org-subtree))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "N" 'bh/narrow-to-subtree)) - 'append) - -(defun bh/narrow-up-one-org-level () - (widen) - (save-excursion - (outline-up-heading 1 'invisible-ok) - (bh/narrow-to-org-subtree))) - -(defun bh/get-pom-from-agenda-restriction-or-point () - (or (and (marker-position org-agenda-restrict-begin) org-agenda-restrict-begin) - (org-get-at-bol 'org-hd-marker) - (and (equal major-mode 'org-mode) (point)) - org-clock-marker)) - -(defun bh/narrow-up-one-level () - (interactive) - (if (equal major-mode 'org-agenda-mode) - (progn - (org-with-point-at (bh/get-pom-from-agenda-restriction-or-point) - (bh/narrow-up-one-org-level)) - (org-agenda-redo)) - (bh/narrow-up-one-org-level))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "U" 'bh/narrow-up-one-level)) - 'append) - -(defun bh/narrow-to-org-project () - (widen) - (save-excursion - (bh/find-project-task) - (bh/narrow-to-org-subtree))) - -(defun bh/narrow-to-project () - (interactive) - (if (equal major-mode 'org-agenda-mode) - (progn - (org-with-point-at (bh/get-pom-from-agenda-restriction-or-point) - (bh/narrow-to-org-project) - (save-excursion - (bh/find-project-task) - (org-agenda-set-restriction-lock))) - (org-agenda-redo) - (beginning-of-buffer)) - (bh/narrow-to-org-project) - (save-restriction - (org-agenda-set-restriction-lock)))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "P" 'bh/narrow-to-project)) - 'append) - -(defvar bh/project-list nil) - -(defun bh/view-next-project () - (interactive) - (let (num-project-left current-project) - (unless (marker-position org-agenda-restrict-begin) - (goto-char (point-min)) - ; Clear all of the existing markers on the list - (while bh/project-list - (set-marker (pop bh/project-list) nil)) - (re-search-forward "Tasks to Refile") - (forward-visible-line 1)) - - ; Build a new project marker list - (unless bh/project-list - (while (< (point) (point-max)) - (while (and (< (point) (point-max)) - (or (not (org-get-at-bol 'org-hd-marker)) - (org-with-point-at (org-get-at-bol 'org-hd-marker) - (or (not (bh/is-project-p)) - (bh/is-project-subtree-p))))) - (forward-visible-line 1)) - (when (< (point) (point-max)) - (add-to-list 'bh/project-list (copy-marker (org-get-at-bol 'org-hd-marker)) 'append)) - (forward-visible-line 1))) - - ; Pop off the first marker on the list and display - (setq current-project (pop bh/project-list)) - (when current-project - (org-with-point-at current-project - (setq bh/hide-scheduled-and-waiting-next-tasks nil) - (bh/narrow-to-project)) - ; Remove the marker - (setq current-project nil) - (org-agenda-redo) - (beginning-of-buffer) - (setq num-projects-left (length bh/project-list)) - (if (> num-projects-left 0) - (message "%s projects left to view" num-projects-left) - (beginning-of-buffer) - (setq bh/hide-scheduled-and-waiting-next-tasks t) - (error "All projects viewed."))))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "V" 'bh/view-next-project)) - 'append) - -(setq org-show-entry-below (quote ((default)))) - -(add-hook 'org-agenda-mode-hook - '(lambda () (org-defkey org-agenda-mode-map "\C-c\C-x<" 'bh/set-agenda-restriction-lock)) - 'append) - -(defun bh/set-agenda-restriction-lock (arg) - "Set restriction lock to current task subtree or file if prefix is specified" - (interactive "p") - (let* ((pom (bh/get-pom-from-agenda-restriction-or-point)) - (tags (org-with-point-at pom (org-get-tags-at)))) - (let ((restriction-type (if (equal arg 4) 'file 'subtree))) - (save-restriction - (cond - ((and (equal major-mode 'org-agenda-mode) pom) - (org-with-point-at pom - (org-agenda-set-restriction-lock restriction-type)) - (org-agenda-redo)) - ((and (equal major-mode 'org-mode) (org-before-first-heading-p)) - (org-agenda-set-restriction-lock 'file)) - (pom - (org-with-point-at pom - (org-agenda-set-restriction-lock restriction-type)))))))) - -;; Limit restriction lock highlighting to the headline only -(setq org-agenda-restriction-lock-highlight-subtree nil) - -;; Always hilight the current agenda line -(add-hook 'org-agenda-mode-hook - '(lambda () (hl-line-mode 1)) - 'append) - -;; Keep tasks with dates on the global todo lists -(setq org-agenda-todo-ignore-with-date nil) - -;; Keep tasks with deadlines on the global todo lists -(setq org-agenda-todo-ignore-deadlines nil) - -;; Keep tasks with scheduled dates on the global todo lists -(setq org-agenda-todo-ignore-scheduled nil) - -;; Keep tasks with timestamps on the global todo lists -(setq org-agenda-todo-ignore-timestamp nil) - -;; Remove completed deadline tasks from the agenda view -(setq org-agenda-skip-deadline-if-done t) - -;; Remove completed scheduled tasks from the agenda view -(setq org-agenda-skip-scheduled-if-done t) - -;; Remove completed items from search results -(setq org-agenda-skip-timestamp-if-done t) - -(setq org-agenda-include-diary nil) -(setq org-agenda-diary-file "~/git/org/diary.org") - -(setq org-agenda-insert-diary-extract-time t) - -;; Include agenda archive files when searching for things -(setq org-agenda-text-search-extra-files (quote (agenda-archives))) - -;; Show all future entries for repeating tasks -(setq org-agenda-repeating-timestamp-show-all t) - -;; Show all agenda dates - even if they are empty -(setq org-agenda-show-all-dates t) - -;; Sorting order for tasks on the agenda -(setq org-agenda-sorting-strategy - (quote ((agenda habit-down time-up user-defined-up effort-up category-keep) - (todo category-up effort-up) - (tags category-up effort-up) - (search category-up)))) - -;; Start the weekly agenda on Monday -(setq org-agenda-start-on-weekday 1) - -;; Enable display of the time grid so we can see the marker for the current time -;; modified like in -;; https://stackoverflow.com/questions/47778775/wrong-type-argument-when-using-org-agenda -(setq org-agenda-time-grid (quote - ((daily today remove-match) - (0900 1100 1300 1500 1700) - "......" "----------------"))) - -;; Display tags farther right -(setq org-agenda-tags-column -102) - -;; -;; Agenda sorting functions -;; -(setq org-agenda-cmp-user-defined 'bh/agenda-sort) - -(defun bh/agenda-sort (a b) - "Sorting strategy for agenda items. -Late deadlines first, then scheduled, then non-late deadlines" - (let (result num-a num-b) - (cond - ; time specific items are already sorted first by org-agenda-sorting-strategy - - ; non-deadline and non-scheduled items next - ((bh/agenda-sort-test 'bh/is-not-scheduled-or-deadline a b)) - - ; deadlines for today next - ((bh/agenda-sort-test 'bh/is-due-deadline a b)) - - ; late deadlines next - ((bh/agenda-sort-test-num 'bh/is-late-deadline '> a b)) - - ; scheduled items for today next - ((bh/agenda-sort-test 'bh/is-scheduled-today a b)) - - ; late scheduled items next - ((bh/agenda-sort-test-num 'bh/is-scheduled-late '> a b)) - - ; pending deadlines last - ((bh/agenda-sort-test-num 'bh/is-pending-deadline '< a b)) - - ; finally default to unsorted - (t (setq result nil))) - result)) - -(defmacro bh/agenda-sort-test (fn a b) - "Test for agenda sort" - `(cond - ; if both match leave them unsorted - ((and (apply ,fn (list ,a)) - (apply ,fn (list ,b))) - (setq result nil)) - ; if a matches put a first - ((apply ,fn (list ,a)) - (setq result -1)) - ; otherwise if b matches put b first - ((apply ,fn (list ,b)) - (setq result 1)) - ; if none match leave them unsorted - (t nil))) - -(defmacro bh/agenda-sort-test-num (fn compfn a b) - `(cond - ((apply ,fn (list ,a)) - (setq num-a (string-to-number (match-string 1 ,a))) - (if (apply ,fn (list ,b)) - (progn - (setq num-b (string-to-number (match-string 1 ,b))) - (setq result (if (apply ,compfn (list num-a num-b)) - -1 - 1))) - (setq result -1))) - ((apply ,fn (list ,b)) - (setq result 1)) - (t nil))) - -(defun bh/is-not-scheduled-or-deadline (date-str) - (and (not (bh/is-deadline date-str)) - (not (bh/is-scheduled date-str)))) - -(defun bh/is-due-deadline (date-str) - (string-match "Deadline:" date-str)) - -(defun bh/is-late-deadline (date-str) - (string-match "\\([0-9]*\\) d\. ago:" date-str)) - -(defun bh/is-pending-deadline (date-str) - (string-match "In \\([^-]*\\)d\.:" date-str)) - -(defun bh/is-deadline (date-str) - (or (bh/is-due-deadline date-str) - (bh/is-late-deadline date-str) - (bh/is-pending-deadline date-str))) - -(defun bh/is-scheduled (date-str) - (or (bh/is-scheduled-today date-str) - (bh/is-scheduled-late date-str))) - -(defun bh/is-scheduled-today (date-str) - (string-match "Scheduled:" date-str)) - -(defun bh/is-scheduled-late (date-str) - (string-match "Sched\.\\(.*\\)x:" date-str)) - -;; Use sticky agenda's so they persist -(setq org-agenda-sticky t) - -;; The following setting is different from the document so that you -;; can override the document path by setting your path in the variable -;; org-mode-user-contrib-lisp-path -;; -(if (boundp 'org-mode-user-contrib-lisp-path) - (add-to-list 'load-path org-mode-user-contrib-lisp-path) - (add-to-list 'load-path (expand-file-name "~/git/org-mode/contrib/lisp"))) - -(require 'org-checklist) - -(setq org-enforce-todo-dependencies t) - -(setq org-hide-leading-stars nil) - -(setq org-startup-indented t) - -(setq org-cycle-separator-lines 0) - -(setq org-blank-before-new-entry (quote ((heading) - (plain-list-item . auto)))) - -(setq org-insert-heading-respect-content nil) - -(setq org-reverse-note-order nil) - -(setq org-show-following-heading t) -(setq org-show-hierarchy-above t) -(setq org-show-siblings (quote ((default)))) - -(setq org-special-ctrl-a/e t) -(setq org-special-ctrl-k t) -(setq org-yank-adjusted-subtrees t) - -(setq org-id-method (quote uuidgen)) - -(setq org-deadline-warning-days 30) - -(setq org-table-export-default-format "orgtbl-to-csv") - -(setq org-link-frame-setup (quote ((vm . vm-visit-folder) - (gnus . org-gnus-no-new-news) - (file . find-file)))) - -; Use the current window for C-c ' source editing -(setq org-src-window-setup 'current-window) - -(setq org-log-done (quote time)) -(setq org-log-into-drawer t) -(setq org-log-state-notes-insert-after-drawers nil) - -(setq org-clock-sound "/usr/local/lib/tngchime.wav") - -; Enable habit tracking (and a bunch of other modules) -(setq org-modules (quote (org-bbdb - org-bibtex - org-crypt - org-gnus - org-id - org-info - org-jsinfo - org-habit - org-inlinetask - org-irc - org-mew - org-mhe - org-protocol - org-rmail - org-vm - org-wl - org-w3m))) - -; position the habit graph on the agenda to the right of the default -(setq org-habit-graph-column 50) - -(run-at-time "06:00" 86400 '(lambda () (setq org-habit-show-habits t))) - -(global-auto-revert-mode t) - -(require 'org-crypt) -; Encrypt all entries before saving -(org-crypt-use-before-save-magic) -(setq org-tags-exclude-from-inheritance (quote ("crypt"))) -; GPG key to use for encryption -(setq org-crypt-key "F0B66B40") - -(setq org-crypt-disable-auto-save nil) - -(setq org-use-speed-commands t) -(setq org-speed-commands-user (quote (("0" . ignore) - ("1" . ignore) - ("2" . ignore) - ("3" . ignore) - ("4" . ignore) - ("5" . ignore) - ("6" . ignore) - ("7" . ignore) - ("8" . ignore) - ("9" . ignore) - - ("a" . ignore) - ("d" . ignore) - ("h" . bh/hide-other) - ("i" progn - (forward-char 1) - (call-interactively 'org-insert-heading-respect-content)) - ("k" . org-kill-note-or-show-branches) - ("l" . ignore) - ("m" . ignore) - ("q" . bh/show-org-agenda) - ("r" . ignore) - ("s" . org-save-all-org-buffers) - ("w" . org-refile) - ("x" . ignore) - ("y" . ignore) - ("z" . org-add-note) - - ("A" . ignore) - ("B" . ignore) - ("E" . ignore) - ("F" . bh/restrict-to-file-or-follow) - ("G" . ignore) - ("H" . ignore) - ("J" . org-clock-goto) - ("K" . ignore) - ("L" . ignore) - ("M" . ignore) - ("N" . bh/narrow-to-org-subtree) - ("P" . bh/narrow-to-org-project) - ("Q" . ignore) - ("R" . ignore) - ("S" . ignore) - ("T" . bh/org-todo) - ("U" . bh/narrow-up-one-org-level) - ("V" . ignore) - ("W" . bh/widen) - ("X" . ignore) - ("Y" . ignore) - ("Z" . ignore)))) - -(defun bh/show-org-agenda () - (interactive) - (if org-agenda-sticky - (switch-to-buffer "*Org Agenda( )*") - (switch-to-buffer "*Org Agenda*")) - (delete-other-windows)) - -(require 'org-protocol) - -(setq require-final-newline t) - -(defvar bh/insert-inactive-timestamp t) - -(defun bh/toggle-insert-inactive-timestamp () - (interactive) - (setq bh/insert-inactive-timestamp (not bh/insert-inactive-timestamp)) - (message "Heading timestamps are %s" (if bh/insert-inactive-timestamp "ON" "OFF"))) - -(defun bh/insert-inactive-timestamp () - (interactive) - (org-insert-time-stamp nil t t nil nil nil)) - -(defun bh/insert-heading-inactive-timestamp () - (save-excursion - (when bh/insert-inactive-timestamp - (org-return) - (org-cycle) - (bh/insert-inactive-timestamp)))) - -(add-hook 'org-insert-heading-hook 'bh/insert-heading-inactive-timestamp 'append) - -(setq org-export-with-timestamps nil) - -(setq org-return-follows-link t) - -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(org-mode-line-clock ((t (:foreground "red" :box (:line-width -1 :style released-button)))) t)) - -(defun bh/prepare-meeting-notes () - "Prepare meeting notes for email - Take selected region and convert tabs to spaces, mark TODOs with leading >>>, and copy to kill ring for pasting" - (interactive) - (let (prefix) - (save-excursion - (save-restriction - (narrow-to-region (region-beginning) (region-end)) - (untabify (point-min) (point-max)) - (goto-char (point-min)) - (while (re-search-forward "^\\( *-\\\) \\(TODO\\|DONE\\): " (point-max) t) - (replace-match (concat (make-string (length (match-string 1)) ?>) " " (match-string 2) ": "))) - (goto-char (point-min)) - (kill-ring-save (point-min) (point-max)))))) - -(setq org-remove-highlights-with-change t) - -(add-to-list 'Info-default-directory-list "~/git/org-mode/doc") - -(setq org-read-date-prefer-future 'time) - -(setq org-list-demote-modify-bullet (quote (("+" . "-") - ("*" . "-") - ("1." . "-") - ("1)" . "-") - ("A)" . "-") - ("B)" . "-") - ("a)" . "-") - ("b)" . "-") - ("A." . "-") - ("B." . "-") - ("a." . "-") - ("b." . "-")))) - -(setq org-tags-match-list-sublevels t) - -(setq org-agenda-persistent-filter t) - -(setq org-link-mailto-program (quote (compose-mail "%a" "%s"))) - -(add-to-list 'load-path (expand-file-name "~/.emacs.d")) -(require 'smex) -(smex-initialize) - -(global-set-key (kbd "M-x") 'smex) -(global-set-key (kbd "C-x x") 'smex) -(global-set-key (kbd "M-X") 'smex-major-mode-commands) - -;; Bookmark handling -;; -(global-set-key (kbd "") '(lambda () (interactive) (bookmark-set "SAVED"))) - -(require 'org-mime) - -(setq org-agenda-skip-additional-timestamps-same-entry t) - -(setq org-table-use-standard-references (quote from)) - -(setq org-file-apps (quote ((auto-mode . emacs) - ("\\.mm\\'" . system) - ("\\.x?html?\\'" . system) - ("\\.pdf\\'" . system)))) - -; Overwrite the current window with the agenda -(setq org-agenda-window-setup 'current-window) - -(setq org-clone-delete-id t) - -(setq org-cycle-include-plain-lists t) - -(setq org-src-fontify-natively t) - -(setq org-structure-template-alist - (quote (("s" "#+begin_src ?\n\n#+end_src" "\n\n") - ("e" "#+begin_example\n?\n#+end_example" "\n?\n") - ("q" "#+begin_quote\n?\n#+end_quote" "\n?\n") - ("v" "#+begin_verse\n?\n#+end_verse" "\n?\n") - ("c" "#+begin_center\n?\n#+end_center" "
\n?\n
") - ("l" "#+begin_latex\n?\n#+end_latex" "\n?\n") - ("L" "#+latex: " "?") - ("h" "#+begin_html\n?\n#+end_html" "\n?\n") - ("H" "#+html: " "?") - ("a" "#+begin_ascii\n?\n#+end_ascii") - ("A" "#+ascii: ") - ("i" "#+index: ?" "#+index: ?") - ("I" "#+include %file ?" "")))) - -(defun bh/mark-next-parent-tasks-todo () - "Visit each parent task and change NEXT states to TODO" - (let ((mystate (or (and (fboundp 'org-state) - state) - (nth 2 (org-heading-components))))) - (when mystate - (save-excursion - (while (org-up-heading-safe) - (when (member (nth 2 (org-heading-components)) (list "NEXT")) - (org-todo "TODO"))))))) - -(add-hook 'org-after-todo-state-change-hook 'bh/mark-next-parent-tasks-todo 'append) -(add-hook 'org-clock-in-hook 'bh/mark-next-parent-tasks-todo 'append) - -(setq org-startup-folded t) - -(add-hook 'message-mode-hook 'orgstruct++-mode 'append) -(add-hook 'message-mode-hook 'turn-on-auto-fill 'append) -(add-hook 'message-mode-hook 'bbdb-define-all-aliases 'append) -(add-hook 'message-mode-hook 'orgtbl-mode 'append) -; (add-hook 'message-mode-hook 'turn-on-flyspell 'append) ; aspell needs nix fix -(add-hook 'message-mode-hook - '(lambda () (setq fill-column 72)) - 'append) - -;; flyspell mode for spell checking everywhere -; (add-hook 'org-mode-hook 'turn-on-flyspell 'append) ; aspell needs nix fix - -;; Disable keys in org-mode -;; C-c [ -;; C-c ] -;; C-c ; -;; C-c C-x C-q cancelling the clock (we never want this) -(add-hook 'org-mode-hook - '(lambda () - ;; Undefine C-c [ and C-c ] since this breaks my - ;; org-agenda files when directories are include It - ;; expands the files in the directories individually - (org-defkey org-mode-map "\C-c[" 'undefined) - (org-defkey org-mode-map "\C-c]" 'undefined) - (org-defkey org-mode-map "\C-c;" 'undefined) - (org-defkey org-mode-map "\C-c\C-x\C-q" 'undefined)) - 'append) - -(add-hook 'org-mode-hook - (lambda () - (local-set-key (kbd "C-c M-o") 'bh/mail-subtree)) - 'append) - -(defun bh/mail-subtree () - (interactive) - (org-mark-subtree) - (org-mime-subtree)) - -(setq org-src-preserve-indentation nil) -(setq org-edit-src-content-indentation 0) - -(setq org-catch-invisible-edits 'error) - -(setq org-export-coding-system 'utf-8) -(prefer-coding-system 'utf-8) -(set-charset-priority 'unicode) -(setq default-process-coding-system '(utf-8-unix . utf-8-unix)) - -(setq org-time-clocksum-format - '(:hours "%d" :require-hours t :minutes ":%02d" :require-minutes t)) - -(setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id) - -(setq org-emphasis-alist (quote (("*" bold "" "") - ("/" italic "" "") - ("_" underline "" "") - ("=" org-code "" "" verbatim) - ("~" org-verbatim "" "" verbatim)))) - -(setq org-use-sub-superscripts nil) - -(setq org-odd-levels-only nil) - -(run-at-time "00:59" 3600 'org-save-all-org-buffers) - -;; --- ombi's extension - -;; found on https://www.reddit.com/r/emacs/comments/8yrklz/using_outlinemode_with_org_agenda/ -(add-hook - 'org-agenda-mode-hook - (lambda () - (setq-local outline-regexp "^[A-Z]") - (setq-local outline-heading-end-regexp ".$") - ;; Any prefix you'd like, though C-' is usually unoccupied. - (setq-local outline-minor-mode-prefix (kbd "C-'")) - (local-set-key "a" 'outline-toggle-children) - (outline-minor-mode +1) - (local-set-key outline-minor-mode-prefix outline-mode-prefix-map))) -''; -in - modifiedBerndHansen diff --git a/jeschli/2configs/emacs.nix b/jeschli/2configs/emacs.nix deleted file mode 100644 index 5c35bc280..000000000 --- a/jeschli/2configs/emacs.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ config, pkgs, ... }: - -let - pkgsWithOverlay = import { - overlays = [ - (import (builtins.fetchTarball { - url = https://github.com/nix-community/emacs-overlay/archive/403c14c23be188b58c0b1bc197b428041d8a0cea.tar.gz; - })) - ]; - }; - - # The emacs packages that I use - # I differ between - # - stable (Packages that I use for some time - happy with it) - # - unstable (Packages that I use for some time - but may drop) - # - testing (Packages that I try out - the new stuff) - emacsPkgs = epkgs: - (with epkgs.melpaPackages ; - - ## windows-purpose (testing) - [ window-purpose ] ++ - - ## helm (stable) - # emacs completion engine - [ helm helm-ag ] ++ - - ## deft (testing) - # text search for a directory - [ deft ] ++ - - ## lsp mode (unstable) - # Language Server Protocol mode - # Used for rust - [ company-lsp dap-mode helm-lsp lsp-mode lsp-treemacs lsp-ui ] ++ - - ## emacs convenience (stable) - # Mixed and general purpose - [ ag company direnv evil google-this spacemacs-theme ] ++ - - ## common lisp (testing) - [ slime ] ++ - - ## magit (stable) - [ magit ] ++ - - ## bunch of programming languages (unstable) - [ go-mode haskell-mode nix-mode ] ++ - - ## rust (unstable) - [ racer rust-mode ] ++ - - ## python (stable) - # Python IDE for emacs - [ elpy ]) ++ - - ## org-mode - # Org-Mode has several extensions - # and can be seen as an application of its own. - (with epkgs.melpaPackages ; - # testing - [ org-super-agenda org-bullets org-ql ] ++ - # unstable - [ smex org-mime orgit ] - ) ++ - - # stable - (with epkgs.orgPackages ; - [ org-plus-contrib ]) ++ - - # stable - (with epkgs.elpaPackages ; - [ bbdb which-key ]); - -# ## EXWM related (unstable) -# epkgs.exwm -# epkgs.melpaPackages.desktop-environment -# epkgs.melpaPackages.helm-exwm -# ]; - - emacsWithOverlay = pkgsWithOverlay.emacsWithPackagesFromUsePackage { - config = builtins.readFile ./elisp/init.el; - # Package is optional, defaults to pkgs.emacs - package = pkgsWithOverlay.emacsGit; - # Optionally provide extra packages not in the configuration file - extraEmacsPackages = emacsPkgs; - }; - - myEmacs = pkgs.writeDashBin "my-emacs" '' - exec ${emacsWithOverlay}/bin/emacs -q "$@" - ''; - - myEmacsWithDaemon = pkgs.writeDashBin "my-emacs-daemon" '' - exec ${emacsWithOverlay}/bin/emacs -q --daemon -l ${./elisp/init.el} - ''; - - myEmacsClient = pkgs.writeDashBin "meclient" '' - exec ${emacsWithOverlay}/bin/emacsclient --create-frame "$@" - ''; -in { - environment.systemPackages = [ - myEmacs myEmacsWithDaemon myEmacsClient emacsWithOverlay - ]; - -## EXWM Config -# services.xserver = { -# enable = true; -# xkbOptions = "caps:super"; -# exportConfiguration = true; -# -# displayManager.slim.enable = true; -# windowManager.default = "exwm"; -# -# # Set up the login session -# windowManager.session = [{ -# name = "exwm"; -# start = "${emacsWithOverlay}/bin/emacs -q -l " + builtins.toString ./elisp/init.el; -# }]; -# }; -} diff --git a/jeschli/2configs/firefox.nix b/jeschli/2configs/firefox.nix deleted file mode 100644 index 1e1e16918..000000000 --- a/jeschli/2configs/firefox.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ config, pkgs, ... }: - -let - - wrapper = pkgs.callPackage ../5pkgs/firefox/firefox-with-config.nix { }; - myFirefox = wrapper pkgs.firefox-unwrapped { - - # these plugins are defined in 5pkgs/firefox - extraExtensions = with pkgs ; [ - dark-reader - https-everywhere - ublock-origin - audio-fingerprint-defender - canvas-fingerprint-defender - webgl-fingerprint-defender - font-fingerprint-defender - user-agent-switcher - ]; - - extraPolicies = { - CaptivePortal = false; - }; - - disablePocket = true; - disableFirefoxSync = true; - allowNonSigned = true; - clearDataOnShutdown = true; - disableDrmPlugin = true; - -}; - -in { - - -environment.variables = { - BROWSER = ["firefox"]; -}; - - -environment.systemPackages = with pkgs; [ - myFirefox -]; - -} diff --git a/jeschli/2configs/git.nix b/jeschli/2configs/git.nix deleted file mode 100644 index faa8ccf5b..000000000 --- a/jeschli/2configs/git.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -let - - out = { - services.nginx.enable = true; - krebs.git = { - enable = true; - cgit = { - settings = { - root-title = "public repositories at ${config.krebs.build.host.name}"; - root-desc = "keep calm and engage"; - }; - enable = true; - }; - repos = mapAttrs (_: s: removeAttrs s ["collaborators"]) repos; - rules = rules; - }; - - krebs.iptables.tables.filter.INPUT.rules = [ - { predicate = "-i retiolum -p tcp --dport 80"; target = "ACCEPT"; } - ]; - }; - - repos = public-repos; - - rules = concatMap make-rules (attrValues repos); - - public-repos = mapAttrs make-public-repo { - stockholm = { - cgit.desc = "Bonbon aus Git - die ganze Nacht"; - }; - krebs-page = { - cgit.desc = "Die Krebs Page"; - }; - xmonad-stockholm = { - cgit.desc = "XMonad Stockholm"; - }; - }; - - make-public-repo = name: { cgit ? {}, ... }: { - inherit cgit name; - public = true; - hooks = { - post-receive = pkgs.git-hooks.irc-announce { - channel = "#xxx"; - nick = config.krebs.build.host.name; - refs = [ - "refs/heads/master" - ]; - server = "irc.r"; - verbose = true; - }; - }; - }; - - make-rules = - with git // config.krebs.users; - repo: - singleton { - user = [ jeschli jeschli-brauerei jeschli-bolide]; - repo = [ repo ]; - perm = push "refs/*" [ non-fast-forward create delete merge ]; - } ++ - optional repo.public { - user = attrValues config.krebs.users; - repo = [ repo ]; - perm = fetch; - } ++ - optional (length (repo.collaborators or []) > 0) { - user = repo.collaborators; - repo = [ repo ]; - perm = fetch; - }; - -in out diff --git a/jeschli/2configs/haskell.nix b/jeschli/2configs/haskell.nix deleted file mode 100644 index 46ae24fb0..000000000 --- a/jeschli/2configs/haskell.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ config, pkgs, ... }: -let - all-hies = import (fetchTarball "https://github.com/infinisil/all-hies/tarball/master") {}; -in -{ - environment.systemPackages = with pkgs; [ - cabal2nix - gcc - ghc - haskellPackages.cabal-install - haskellPackages.ghcid - haskellPackages.hindent - haskellPackages.hlint - haskellPackages.hoogle - haskellPackages.stack - (all-hies.selection { selector = p: {inherit (p) ghc864; }; }) - ]; -} diff --git a/jeschli/2configs/home-manager/default.nix b/jeschli/2configs/home-manager/default.nix deleted file mode 100644 index ad8663d58..000000000 --- a/jeschli/2configs/home-manager/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - - ]; - home-manager.useUserPackages = true; - home-manager.users.jeschli = { - home.stateVersion = "19.03"; - }; -} diff --git a/jeschli/2configs/i3.nix b/jeschli/2configs/i3.nix deleted file mode 100644 index 1a6c4927a..000000000 --- a/jeschli/2configs/i3.nix +++ /dev/null @@ -1,247 +0,0 @@ -{pkgs, environment, config, lib, ... }: - -with pkgs; - -let - - i3_conf_file = pkgs.writeText "config" '' - - # i3 config file (v4) - # doc: https://i3wm.org/docs/userguide.html - - set $mod Mod4 - - # Font for window titles. Will also be used by the bar unless a different font - # is used in the bar {} block below. - font pango:monospace 8 - - # Use Mouse+$mod to drag floating windows to their wanted position - floating_modifier $mod - - # start a terminal - bindsym $mod+Return exec i3-sensible-terminal - - # kill focused window - bindsym $mod+Shift+q kill - - # start rofi program launcher - bindsym $mod+d exec ${pkgs.rofi}/bin/rofi -modi drun#run -combi-modi drun#run -show combi -show-icons -display-combi run - # Switch windows with rofi - bindsym $mod+x exec ${pkgs.rofi}/bin/rofi -modi window -show window -auto-select - - # There also is the (new) i3-dmenu-desktop which only displays applications - # shipping a .desktop file. It is a wrapper around dmenu, so you need that - # installed. - # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop - - # change focus - bindsym $mod+j focus left - bindsym $mod+k focus down - bindsym $mod+l focus up - bindsym $mod+semicolon focus right - - # alternatively, you can use the cursor keys: - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # move focused window - bindsym $mod+Shift+j move left - bindsym $mod+Shift+k move down - bindsym $mod+Shift+l move up - bindsym $mod+Shift+semicolon move right - - # alternatively, you can use the cursor keys: - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - - # split in horizontal orientation - bindsym $mod+h split h - - # split in vertical orientation - bindsym $mod+v split v - - # enter fullscreen mode for the focused container - bindsym $mod+f fullscreen toggle - - # change container layout (stacked, tabbed, toggle split) - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - - # toggle tiling / floating - bindsym $mod+Shift+space floating toggle - - # change focus between tiling / floating windows - bindsym $mod+space focus mode_toggle - - # focus the parent container - bindsym $mod+a focus parent - - # focus the child container - #bindsym $mod+d focus child - - # Define names for default workspaces for which we configure key bindings later on. - # We use variables to avoid repeating the names in multiple places. - set $ws1 "1" - set $ws2 "2" - set $ws3 "3: Emacs" - set $ws4 "4" - set $ws5 "5" - set $ws6 "6" - set $ws7 "7" - set $ws8 "8" - set $ws9 "9" - set $ws10 "10" - - assign [class="emacs"] $ws3 - - # switch to workspace - bindsym $mod+1 workspace $ws1 - bindsym $mod+2 workspace $ws2 - bindsym $mod+3 workspace $ws3 - bindsym $mod+4 workspace $ws4 - bindsym $mod+5 workspace $ws5 - bindsym $mod+6 workspace $ws6 - bindsym $mod+7 workspace $ws7 - bindsym $mod+8 workspace $ws8 - bindsym $mod+9 workspace $ws9 - bindsym $mod+0 workspace $ws10 - - # move focused container to workspace - bindsym $mod+Shift+1 move container to workspace $ws1 - bindsym $mod+Shift+2 move container to workspace $ws2 - bindsym $mod+Shift+3 move container to workspace $ws3 - bindsym $mod+Shift+4 move container to workspace $ws4 - bindsym $mod+Shift+5 move container to workspace $ws5 - bindsym $mod+Shift+6 move container to workspace $ws6 - bindsym $mod+Shift+7 move container to workspace $ws7 - bindsym $mod+Shift+8 move container to workspace $ws8 - bindsym $mod+Shift+9 move container to workspace $ws9 - bindsym $mod+Shift+0 move container to workspace $ws10 - - # reload the configuration file - bindsym $mod+Shift+c reload - # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) - bindsym $mod+Shift+r restart - # exit i3 (logs you out of your X session) - bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - - # resize window (you can also use the mouse for that) - mode "resize" { - # These bindings trigger as soon as you enter the resize mode - - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym semicolon resize grow width 10 px or 10 ppt - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape or $mod+r - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" - } - - bindsym $mod+r mode "resize" - - bar { - status_command i3status - position top - } - - ####################### - # # - # AUTORUNS # - # # - ####################### - # Start firefox - exec --no-startup-id ${pkgs.firefox}/bin/firefox --new-instance --setDefaultBrowser - - # Start my-emacs server - exec --no-startup-id my-emacs-daemon - ''; - -in { - - ####################### - # # - # AUTORANDR # - # # - ####################### - - # Start autorandr on display change - services.autorandr = { - enable = true; - defaultTarget = "mobile"; - }; - - # What to execute after resolution has been changed - environment.etc."xdg/autorandr/postswitch" = { - text = '' sleep 4 && i3-msg "restart" ''; - - }; - - # Start autorandr once on startup - systemd.user.services.boot-autorandr = { - description = "Autorandr service"; - partOf = [ "graphical-session.target" ]; - wantedBy = [ "graphical-session.target" ]; - serviceConfig = { - ExecStart = "${pkgs.autorandr}/bin/autorandr -c"; - Type = "oneshot"; - }; - }; - - - - ####################### - # # - # XSERVER # - # # - ####################### -services.xserver.enable = true; - - # Enable i3 Window Manager - services.xserver.windowManager.i3 = { - enable = true; - package = pkgs.i3; - configFile = i3_conf_file; - }; - - - # ${pkgs.xorg.xhost}/bin/xhost +SI:localuser:${cfg.user.name} - # ${pkgs.xorg.xhost}/bin/xhost -LOCAL: - services.xserver.windowManager.default = "i3"; - services.xserver.desktopManager.xterm.enable = false; - - - # Enable the X11 windowing system. - services.xserver.displayManager.lightdm.enable = true; - - # Allow users in video group to change brightness - environment.systemPackages = with pkgs; [ - rofi # Dmenu replacement - acpilight # Replacement for xbacklight - brightnessctl - arandr # Xrandr gui - feh - wirelesstools # To get wireless statistics - acpi - xorg.xhost - xorg.xauth - ]; - -} diff --git a/jeschli/2configs/officevpn.nix b/jeschli/2configs/officevpn.nix deleted file mode 100644 index eb0477d51..000000000 --- a/jeschli/2configs/officevpn.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, pkgs, ... }: - -{ - nixpkgs.config.packageOverrides = pkgs: { - openvpn = pkgs.openvpn.override { pkcs11Support = true; useSystemd = false;}; - }; - - environment.systemPackages = with pkgs; [ - opensc - openvpn - yubikey-manager - ]; - - services.pcscd.enable = true; - - # To start the vpn manually execute - # $ openvpn --config clien.ovpn -} - diff --git a/jeschli/2configs/os-templates/CentOS-7-64bit.nix b/jeschli/2configs/os-templates/CentOS-7-64bit.nix deleted file mode 100644 index fb34e94e2..000000000 --- a/jeschli/2configs/os-templates/CentOS-7-64bit.nix +++ /dev/null @@ -1,16 +0,0 @@ -_: - -{ - imports = [ ]; - - boot.loader.grub = { - device = "/dev/sda"; - splashImage = null; - }; - boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sd_mod" "sr_mod" ]; - - fileSystems."/" = { - device = "/dev/sda1"; - fsType = "ext4"; - }; -} diff --git a/jeschli/2configs/python.nix b/jeschli/2configs/python.nix deleted file mode 100644 index 0c32e1fc8..000000000 --- a/jeschli/2configs/python.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ config, pkgs, ... }: - -{ - environment.systemPackages = with pkgs; [ - python37 - python37Packages.pip - pipenv - ]; -} diff --git a/jeschli/2configs/retiolum.nix b/jeschli/2configs/retiolum.nix deleted file mode 100644 index f22609655..000000000 --- a/jeschli/2configs/retiolum.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ config, pkgs, ... }: - -{ - - krebs.tinc.retiolum = { - enable = true; - connectTo = [ - "prism" - "gum" - "ni" - "dishfire" - "enklave" - ]; - }; - - nixpkgs.config.packageOverrides = pkgs: { - tinc = pkgs.tinc_pre; - }; - - networking.firewall.allowedTCPPorts = [ 80 655 ]; - networking.firewall.allowedUDPPorts = [ 655 ]; - - environment.systemPackages = [ - pkgs.tinc - ]; -} diff --git a/jeschli/2configs/rust.nix b/jeschli/2configs/rust.nix deleted file mode 100644 index 46addb15c..000000000 --- a/jeschli/2configs/rust.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, pkgs, ... }: - -{ - environment.systemPackages = with pkgs; [ - rustup - gcc - ]; -} diff --git a/jeschli/2configs/steam.nix b/jeschli/2configs/steam.nix deleted file mode 100644 index 06a068a3f..000000000 --- a/jeschli/2configs/steam.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, pkgs, ... }: - -{ - - nixpkgs.config.steam.java = true; - environment.systemPackages = with pkgs; [ - steam - ]; - hardware.opengl.driSupport32Bit = true; - - #ports for inhome streaming -} diff --git a/jeschli/2configs/tests/dummy-secrets/empty b/jeschli/2configs/tests/dummy-secrets/empty deleted file mode 100644 index e69de29bb..000000000 diff --git a/jeschli/2configs/urxvt.nix b/jeschli/2configs/urxvt.nix deleted file mode 100644 index 4049a47a3..000000000 --- a/jeschli/2configs/urxvt.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ config, pkgs, ... }: -with import ; -{ - options.jeschliFontSize = mkOption { - type = types.int; - default = 12; - }; - config = { - services.urxvtd.enable = true; - krebs.xresources.enable = true; - krebs.xresources.resources.urxvt = '' - *foreground: rgb:a8/a8/a8 - *background: rgb:00/00/00 - *faceName: DejaVu Sans Mono - *faceSize: ${toString config.jeschliFontSize} - *color0: rgb:00/00/00 - *color1: rgb:a8/00/00 - *color2: rgb:00/a8/00 - *color3: rgb:a8/54/00 - *color4: rgb:26/8b/d2 - *color5: rgb:a8/00/a8 - *color6: rgb:00/a8/a8 - *color7: rgb:a8/a8/a8 - *color8: rgb:54/54/54 - *color9: rgb:fc/54/54 - *color10: rgb:54/fc/54 - *color11: rgb:fc/fc/54 - *color12: rgb:54/54/fc - *color13: rgb:fc/54/fc - *color14: rgb:54/fc/fc - *color15: rgb:fc/fc/fc - - URxvt*scrollBar: false - URxvt*urgentOnBell: true - URxvt*font: xft:DejaVu Sans Mono:pixelsize=${toString config.jeschliFontSize} - URXvt*faceSize: ${toString config.jeschliFontSize} - ''; - }; -} diff --git a/jeschli/2configs/vim.nix b/jeschli/2configs/vim.nix deleted file mode 100644 index 586016f60..000000000 --- a/jeschli/2configs/vim.nix +++ /dev/null @@ -1,151 +0,0 @@ -{ config, pkgs, ... }: - -with import ; -let - customPlugins.vim-javascript = pkgs.vimUtils.buildVimPlugin { - name = "vim-javascript"; - src = pkgs.fetchFromGitHub { - owner = "pangloss"; - repo = "vim-javascript"; - rev = "1.2.5.1"; - sha256 = "08l7ricd3j5h2bj9i566byh39v9n5wj5mj75f2c8a5dsc732b2k7"; - }; - }; - customPlugins.vim-jsx = pkgs.vimUtils.buildVimPlugin { - name = "vim-jsx"; - src = pkgs.fetchFromGitHub { - owner = "mxw"; - repo = "vim-jsx"; - rev = "5b968dfa512c57c38ad7fe420f3e8ab75a73949a"; - sha256 = "1z3yhhbmbzfw68qjzyvpbmlyv2a1p814sy5q2knn04kcl30vx94a"; - }; - }; - customPlugins.vim-fileline = pkgs.vimUtils.buildVimPlugin { - name = "file-line-1.0"; - src = pkgs.fetchFromGitHub { - owner = "bogado"; - repo = "file-line"; - rev = "1.0"; - sha256 = "0z47zq9rqh06ny0q8lpcdsraf3lyzn9xvb59nywnarf3nxrk6hx0"; - }; - }; -in { - environment.systemPackages = [ - (pkgs.vim_configurable.customize { - name = "vim"; - vimrcConfig.customRC = let - colorscheme = ''colorscheme molokai''; - highlightTrailingWhiteSpaces = '' - au Syntax * syn match Garbage containedin=ALL /\s\+$/ - ''; - setStatements = '' - set autowrite - set clipboard=unnamedplus - set listchars=trail:¶ - set mouse=a - set nocompatible - set path+=** - set ruler - set undodir=$HOME/.vim/undo "directory where the undo files will be stored - set undofile "turn on the feature - set wildignore+=*.o,*.class,*.hi,*.dyn_hi,*.dyn_o - set wildmenu - ''; - remapStatements = '' - imap jk - map gr :GoRun " Map gr to execute go run - map tt :GoTest " Map tt to execute go test - map nf :NERDTreeToggle - nnoremap - nnoremap :bnext - noremap x "_x - vmap v v - ''; - settingsForGo = '' - let g:go_decls_includes = "func,type" - let g:go_def_mode = 'godef' - let g:go_fmt_command = "goimports" - let g:go_highlight_extra_types = 1 - let g:go_highlight_fields = 1 - let g:go_highlight_functions = 1 - let g:go_highlight_methods = 1 - let g:go_highlight_types = 1 - let g:go_list_type = "quickfix" - let g:go_metalinter_autosave = 1 - let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck'] - let g:go_snippet_case_type = "camelcase" - let g:go_test_timeout = '10s' - let g:jsx_ext_required = 0 - let g:molokai_original = 1 - let g:rehash256 = 1 - ''; - settingsForElm = '' - let g:polyglot_disabled = ['elm'] - let g:elm_detailed_complete = 1 - let g:elm_format_autosave = 1 - let g:elm_syntastic_show_warnings = 1 - ''; - in '' - ${colorscheme} - ${highlightTrailingWhiteSpaces} - ${remapStatements} - ${setStatements} - ${settingsForElm} - ${settingsForGo} - " dont expand tabs in go files and show it with four whitespaces. - autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 - ''; - vimrcConfig.vam.knownPlugins = pkgs.vimPlugins // customPlugins; - vimrcConfig.vam.pluginDictionaries = [ - { names = [ - "ctrlp" - "easymotion" - "elm-vim" - "vim-fileline" - "molokai" - "nerdtree" - "snipmate" - "surround" - "Syntastic" - "undotree" - ]; - } - { names = [ "vim-addon-nix" ]; ft_regex = "^nix\$"; } - { names = [ "vim-go" ]; ft_regex = "^go\$"; } # wanted: nsf/gocode - { names = [ "vim-javascript" ]; ft_regex = "^js\$"; } - { names = [ "vim-jsx" ]; ft_regex = "^js\$"; } - ]; - }) - ]; - - # set up the directories up if they are not there. -# Needs to be changed. -# vim = let -# dirs = { -# backupdir = "$HOME/.cache/vim/backup"; -# swapdir = "$HOME/.cache/vim/swap"; -# undodir = "$HOME/.cache/vim/undo"; -# }; -# files = { -# viminfo = "$HOME/.cache/vim/info"; -# }; -# -# mkdirs = let -# dirOf = s: let out = concatStringsSep "/" (init (splitString "/" s)); -# in assert out != ""; out; -# alldirs = attrValues dirs ++ map dirOf (attrValues files); -# in unique (sort lessThan alldirs); -# in -# pkgs.symlinkJoin { -# name = "vim"; -# paths = [ -# (pkgs.writeDashBin "vim" '' -# set -efu -# (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) -# exec ${pkgs.vim}/bin/vim "$@" -# '') -# pkgs.vim -# ]; -# }; - -} diff --git a/jeschli/2configs/virtualbox.nix b/jeschli/2configs/virtualbox.nix deleted file mode 100644 index c9bb8c41f..000000000 --- a/jeschli/2configs/virtualbox.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ config, pkgs, ... }: - -let - mainUser = config.users.extraUsers.jeschli; - -in { - #services.virtualboxHost.enable = true; - virtualisation.virtualbox.host.enable = true; - - users.extraUsers = { - virtual = { - name = "virtual"; - description = "user for running VirtualBox"; - home = "/home/virtual"; - useDefaultShell = true; - extraGroups = [ "vboxusers" "audio" ]; - createHome = true; - }; - }; - security.sudo.extraConfig = '' - ${mainUser.name} ALL=(virtual) NOPASSWD: ALL - ''; -} diff --git a/jeschli/2configs/xdg.nix b/jeschli/2configs/xdg.nix deleted file mode 100644 index 18bac9b38..000000000 --- a/jeschli/2configs/xdg.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -{ - environment.variables.XDG_RUNTIME_DIR = "/run/xdg/$LOGNAME"; - - systemd.tmpfiles.rules = let - forUsers = flip map users; - isUser = { name, group, ... }: - name == "root" || hasSuffix "users" group; - users = filter isUser (mapAttrsToList (_: id) config.users.users); - in forUsers (u: "d /run/xdg/${u.name} 0700 ${u.name} ${u.group} -"); -} diff --git a/jeschli/2configs/xserver/Xmodmap.nix b/jeschli/2configs/xserver/Xmodmap.nix deleted file mode 100644 index d2b1b2604..000000000 --- a/jeschli/2configs/xserver/Xmodmap.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, pkgs, ... }: - -with import ; - -pkgs.writeText "Xmodmap" '' - !keycode 66 = Caps_Lock - !remove Lock = Caps_Lock - clear Lock - - ! caps lock - keycode 66 = Mode_switch - - keycode 13 = 4 dollar EuroSign cent - keycode 30 = u U udiaeresis Udiaeresis - keycode 32 = o O odiaeresis Odiaeresis - keycode 38 = a A adiaeresis Adiaeresis - keycode 39 = s S ssharp - - keycode 33 = p P Greek_pi Greek_PI - keycode 46 = l L Greek_lambda Greek_LAMBDA - - keycode 54 = c C cacute Cacute - - ! BULLET OPERATOR - keycode 17 = 8 asterisk U2219 - keycode 27 = r R r U211D -'' diff --git a/jeschli/2configs/xserver/Xresources.nix b/jeschli/2configs/xserver/Xresources.nix deleted file mode 100644 index ebe7159ff..000000000 --- a/jeschli/2configs/xserver/Xresources.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -pkgs.writeText "Xresources" /* xdefaults */ '' - Xcursor.theme: aero-large-drop - Xcursor.size: 128 - - URxvt*cutchars: "\\`\"'&()*,;<=>?@[]^{|}‘’" - URxvt*eightBitInput: false - URxvt*font: -*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1 - URxvt*boldFont: -*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1 - URxvt*scrollBar: false - URxvt*background: #050505 - URxvt*foreground: #d0d7d0 - URxvt*cursorColor: #f042b0 - URxvt*cursorColor2: #f0b000 - URxvt*cursorBlink: off - URxvt*jumpScroll: true - URxvt*allowSendEvents: false - URxvt*charClass: 33:48,37:48,45-47:48,64:48,38:48,61:48,63:48 - URxvt*cutNewline: False - URxvt*cutToBeginningOfLine: False - URxvt*font: xft:Monospace:size=12 - URxvt*font: xft:Monospace:size=12:bold - URxvt*color0: #232342 - URxvt*color3: #c07000 - URxvt*color4: #4040c0 - URxvt*color7: #c0c0c0 - URxvt*color8: #707070 - URxvt*color9: #ff6060 - URxvt*color10: #70ff70 - URxvt*color11: #ffff70 - URxvt*color12: #7070ff - URxvt*color13: #ff50ff - URxvt*color14: #70ffff - URxvt*color15: #ffffff - - URxvt*iso14755: False - - URxvt*urgentOnBell: True - URxvt*visualBell: True - - ! ref https://github.com/muennich/urxvt-perls - URxvt*perl-ext: default,url-select - URxvt*keysym.M-u: perl:url-select:select_next - URxvt*url-select.underline: true - URxvt*colorUL: #4682B4 - URxvt.perl-lib: ${pkgs.urxvt_perls}/lib/urxvt/perl - URxvt*saveLines: 10000 - - root-urxvt*background: #230000 - root-urxvt*foreground: #e0c0c0 - root-urxvt*BorderColor: #400000 - root-urxvt*color0: #800000 -'' diff --git a/jeschli/2configs/xserver/default.nix b/jeschli/2configs/xserver/default.nix deleted file mode 100644 index 44c35ca37..000000000 --- a/jeschli/2configs/xserver/default.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ config, pkgs, ... }@args: -with import ; -let - cfg = { - cacheDir = cfg.dataDir; - configDir = "/var/empty"; - dataDir = "/run/xdg/${cfg.user.name}/xmonad"; - user = config.krebs.users.jeschli; - }; -in { - - environment.systemPackages = [ - pkgs.font-size - pkgs.gitAndTools.qgit - pkgs.mpv - pkgs.sxiv - pkgs.xdotool - pkgs.xsel - pkgs.zathura - ]; - - fonts.fonts = [ - pkgs.xlibs.fontschumachermisc - ]; - - # TODO dedicated group, i.e. with a single user [per-user-setuid] - # TODO krebs.setuid.slock.path vs /run/wrappers/bin - krebs.setuid.slock = { - filename = "${pkgs.slock}/bin/slock"; - group = "wheel"; - envp = { - DISPLAY = ":${toString config.services.xserver.display}"; - USER = cfg.user.name; - }; - }; - - systemd.services.display-manager.enable = false; - - systemd.services.xmonad = { - wantedBy = [ "multi-user.target" ]; - requires = [ "xserver.service" ]; - environment = { - DISPLAY = ":${toString config.services.xserver.display}"; - - XMONAD_CACHE_DIR = cfg.cacheDir; - XMONAD_CONFIG_DIR = cfg.configDir; - XMONAD_DATA_DIR = cfg.dataDir; - - XMONAD_STARTUP_HOOK = pkgs.writeDash "xmonad-startup-hook" '' - ${pkgs.xorg.xhost}/bin/xhost +LOCAL: & - ${pkgs.xorg.xmodmap}/bin/xmodmap ${import ./Xmodmap.nix args} & - ${pkgs.xorg.xrdb}/bin/xrdb ${import ./Xresources.nix args} & - ${pkgs.xorg.xsetroot}/bin/xsetroot -solid '#1c1c1c' & - ${config.services.xserver.displayManager.sessionCommands} - if test -z "$DBUS_SESSION_BUS_ADDRESS"; then - exec ${pkgs.dbus.dbus-launch} --exit-with-session "$0" "" - fi - export DBUS_SESSION_BUS_ADDRESS - ${config.systemd.package}/bin/systemctl --user import-environment DISPLAY DBUS_SESSION_BUS_ADDRESS - wait - ''; - - # XXX JSON is close enough :) - XMONAD_WORKSPACES0_FILE = pkgs.writeText "xmonad.workspaces0" (toJSON [ - "dashboard" # we start here - "stockholm" - "pycharm" - "chromium" - "iRC" - "git" - "hipbird" - ]); - }; - serviceConfig = { - SyslogIdentifier = "xmonad"; - ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${toString [ - "\${XMONAD_CACHE_DIR}" - "\${XMONAD_CONFIG_DIR}" - "\${XMONAD_DATA_DIR}" - ]}"; - ExecStart = "${pkgs.xmonad-jeschli}/bin/xmonad"; - ExecStop = "${pkgs.xmonad-jeschli}/bin/xmonad --shutdown"; - User = cfg.user.name; - WorkingDirectory = cfg.user.home; - }; - }; - - systemd.services.xserver = { - after = [ - "systemd-udev-settle.service" - "local-fs.target" - "acpid.service" - ]; - reloadIfChanged = true; - environment = { - XKB_BINDIR = "${pkgs.xorg.xkbcomp}/bin"; # Needed for the Xkb extension. - XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime. - LD_LIBRARY_PATH = concatStringsSep ":" ( - [ "${pkgs.xorg.libX11}/lib" "${pkgs.xorg.libXext}/lib" ] - ++ concatLists (catAttrs "libPath" config.services.xserver.drivers)); - }; - serviceConfig = { - SyslogIdentifier = "xserver"; - ExecReload = "${pkgs.coreutils}/bin/echo NOP"; - ExecStart = toString [ - "${pkgs.xorg.xorgserver}/bin/X" - ":${toString config.services.xserver.display}" - "vt${toString config.services.xserver.tty}" - "-config ${import ./xserver.conf.nix args}" - "-logfile /dev/null -logverbose 0 -verbose 3" - "-nolisten tcp" - "-xkbdir ${pkgs.xkeyboard_config}/etc/X11/xkb" - ]; - }; - }; - - systemd.services.urxvtd = { - wantedBy = [ "multi-user.target" ]; - reloadIfChanged = true; - serviceConfig = { - SyslogIdentifier = "urxvtd"; - ExecReload = "${pkgs.coreutils}/bin/echo NOP"; - ExecStart = "${pkgs.rxvt_unicode}/bin/urxvtd"; - Restart = "always"; - RestartSec = "2s"; - StartLimitBurst = 0; - User = cfg.user.name; - }; - }; -} diff --git a/jeschli/2configs/xserver/xserver.conf.nix b/jeschli/2configs/xserver/xserver.conf.nix deleted file mode 100644 index 6f34e0150..000000000 --- a/jeschli/2configs/xserver/xserver.conf.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -let - cfg = config.services.xserver; -in - -pkgs.stdenv.mkDerivation { - name = "xserver.conf"; - - xfs = optionalString (cfg.useXFS != false) - ''FontPath "${toString cfg.useXFS}"''; - - inherit (cfg) config; - - buildCommand = - '' - echo 'Section "Files"' >> $out - echo $xfs >> $out - - for i in ${toString config.fonts.fonts}; do - if test "''${i:0:''${#NIX_STORE}}" == "$NIX_STORE"; then - for j in $(find $i -name fonts.dir); do - echo " FontPath \"$(dirname $j)\"" >> $out - done - fi - done - - for i in $(find ${toString cfg.modules} -type d); do - if test $(echo $i/*.so* | wc -w) -ne 0; then - echo " ModulePath \"$i\"" >> $out - fi - done - - echo 'EndSection' >> $out - - echo "$config" >> $out - ''; -} diff --git a/jeschli/2configs/zsh.nix b/jeschli/2configs/zsh.nix deleted file mode 100644 index 0f6775efb..000000000 --- a/jeschli/2configs/zsh.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - environment.systemPackages = [ pkgs.fzf ]; - programs.zsh = { - enable = true; - shellInit = '' - #disable config wizard - zsh-newuser-install() { :; } - ''; - interactiveShellInit = '' - setopt autocd extendedglob - bindkey -e - - #history magic - bindkey "" up-line-or-local-history - bindkey "" down-line-or-local-history - - up-line-or-local-history() { - zle set-local-history 1 - zle up-line-or-history - zle set-local-history 0 - } - zle -N up-line-or-local-history - down-line-or-local-history() { - zle set-local-history 1 - zle down-line-or-history - zle set-local-history 0 - } - zle -N down-line-or-local-history - - setopt share_history - setopt hist_ignore_dups - # setopt inc_append_history - bindkey '^R' history-incremental-search-backward - - #C-x C-e open line in editor - autoload -z edit-command-line - zle -N edit-command-line - bindkey "^X^E" edit-command-line - - #fzf inclusion - source ${pkgs.fzf}/share/fzf/completion.zsh - source ${pkgs.fzf}/share/fzf/key-bindings.zsh - - #completion magic - autoload -Uz compinit - compinit - zstyle ':completion:*' menu select - - #enable automatic rehashing of $PATH - zstyle ':completion:*' rehash true - - eval $(dircolors -b ${pkgs.fetchFromGitHub { - owner = "trapd00r"; - repo = "LS_COLORS"; - rev = "a75fca8545f91abb8a5f802981033ef54bf1eac0"; - sha256="1lzj0qnj89mzh76ha137mnz2hf86k278rh0y9x124ghxj9yqsnb4"; - }}/LS_COLORS) - - #beautiful colors - alias ls='ls --color' - # zstyle ':completion:*:default' list-colors ''${(s.:.)LS_COLORS} - - #emacs bindings - bindkey "[7~" beginning-of-line - bindkey "[8~" end-of-line - bindkey "Oc" emacs-forward-word - bindkey "Od" emacs-backward-word - - #aliases - alias ll='ls -l' - alias la='ls -la' - - #fancy window title magic - ''; - promptInit = '' - # TODO: figure out why we need to set this here - HISTSIZE=900001 - HISTFILESIZE=$HISTSIZE - SAVEHIST=$HISTSIZE - - autoload -U promptinit - promptinit - - p_error='%(?..%F{red}%?%f )' - t_error='%(?..%? )' - - case $UID in - 0) - p_username='%F{red}root%f' - t_username='root' - ;; - 1337) - p_username="" - t_username="" - ;; - *) - p_username='%F{blue}%n%f' - t_username='%n' - ;; - esac - - if test -n "$SSH_CLIENT"; then - p_hostname='@%F{magenta}%M%f ' - t_hostname='@%M ' - else - p_hostname="" - t_hostname="" - fi - - #check if in nix shell - if test -n "$buildInputs"; then - p_nixshell='%F{green}[s]%f ' - t_nixshell='[s] ' - else - p_nixshell="" - t_nixshell="" - fi - - PROMPT="$p_error$p_username$p_hostname$p_nixshell%~ " - TITLE="$t_error$t_username$t_hostname$t_nixshell%~" - case $TERM in - (*xterm* | *rxvt*) - function precmd { - PROMPT_EVALED="$(print -P $TITLE)" - echo -ne "\033]0;$$ $PROMPT_EVALED\007" - } - # This is seen while the shell waits for a command to complete. - function preexec { - PROMPT_EVALED="$(print -P $TITLE)" - echo -ne "\033]0;$$ $PROMPT_EVALED $1\007" - } - ;; - esac - ''; - }; - users.defaultUserShell = "/run/current-system/sw/bin/zsh"; -} diff --git a/jeschli/5pkgs/default.nix b/jeschli/5pkgs/default.nix deleted file mode 100644 index 3fa5b5e85..000000000 --- a/jeschli/5pkgs/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -with import ; - -self: super: - -# Import files and subdirectories like they are overlays. -foldl' mergeAttrs {} - (map - (name: import (./. + "/${name}") self super) - (filter - (name: name != "default.nix" && !hasPrefix "." name) - (attrNames (readDir ./.)))) diff --git a/jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix deleted file mode 100644 index 05815e132..000000000 --- a/jeschli/5pkgs/firefox/audio-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "audio-fingerprint-defender-${version}"; - version = "0.1.3"; - - extid = "@audio-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3363623/audiocontext_fingerprint_defender-${version}-an+fx.xpi"; - sha256 = "0yfk5vqwjg4g25c98psj56sw3kv8imxav3nss4hbibflgla1h5pb"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Audio context fingerprint defender firefox browser addon"; - homepage = https://mybrowseraddon.com/audiocontext-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix deleted file mode 100644 index 21b4b3f97..000000000 --- a/jeschli/5pkgs/firefox/canvas-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "canvas-fingerprint-defender-${version}"; - version = "0.1.5"; - - extid = "@canvas-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3362272/canvas_fingerprint_defender-${version}-an+fx.xpi?src=recommended"; - sha256 = "1hg00zsrw7ij7bc222j83g2wm3ml1aj34zg5im1802cjq4qqvbld"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Canvas fingerprint defender firefox browser addon"; - homepage = https://mybrowseraddon.com/webgl-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/dark-reader/default.nix b/jeschli/5pkgs/firefox/dark-reader/default.nix deleted file mode 100644 index 44f4f9054..000000000 --- a/jeschli/5pkgs/firefox/dark-reader/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "dark-reader-${version}"; - version = "4.8.1"; - - extid = "addon@darkreader.org"; - signed = true; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3404143/dark_reader-${version}-an+fx.xpi"; - sha256 = "0ic0i56jhmxymvy68bs5hqcjvdvw3vks5r58i2ygmpsm190rlldb"; - }; - - phases = [ "installPhase" ]; - - installPhase = '' - install -D ${src} "$out/${extid}.xpi" - ''; - - meta = with stdenv.lib; { - description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing."; - homepage = https://github.com/darkreader/darkreader; - license = licenses.mit; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/default.nix b/jeschli/5pkgs/firefox/default.nix deleted file mode 100644 index 6ba4fec83..000000000 --- a/jeschli/5pkgs/firefox/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -with import ; - -self: super: - -let - # This callPackage will try to detect obsolete overrides. - callPackage = path: args: let - override = self.callPackage path args; - upstream = optionalAttrs (override ? "name") - (super.${(parseDrvName override.name).name} or {}); - in if upstream ? "name" && - override ? "name" && - compareVersions upstream.name override.name != -1 - then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override - else override; -in - - mapNixDir (path: callPackage path {}) ./. diff --git a/jeschli/5pkgs/firefox/firefox-with-config.nix b/jeschli/5pkgs/firefox/firefox-with-config.nix deleted file mode 100644 index fc22c434e..000000000 --- a/jeschli/5pkgs/firefox/firefox-with-config.nix +++ /dev/null @@ -1,487 +0,0 @@ -{ stdenv, lib, pkgs, makeDesktopItem, makeWrapper, lndir, replace, config - -## various stuff that can be plugged in -, flashplayer, hal-flash -, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2 -, jrePlugin, icedtea_web -, bluejeans, djview4, adobe-reader -, fribid, gnome3/*.gnome-shell*/ -, esteidfirefoxplugin ? "" -, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow -, udev -, kerberos - -}: - -## configurability of the wrapper itself - -browser: - -let - wrapper = - { browserName ? browser.browserName or (builtins.parseDrvName browser.name).name - , name ? (browserName + "-" + (builtins.parseDrvName browser.name).version) - , desktopName ? # browserName with first letter capitalized - (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) - , nameSuffix ? "" - , icon ? browserName - , extraPlugins ? [] - , extraPrefs ? "" - , extraExtensions ? [ ] - , allowNonSigned ? false - , disablePocket ? false - , disableTelemetry ? true - , disableDrmPlugin ? false - , showPunycodeUrls ? true - , disableFirefoxStudies ? true - , disableFirefoxSync ? false - , useSystemCertificates ? true - , dontCheckDefaultBrowser ? false - # For more information about anti tracking - # vist https://wiki.kairaven.de/open/app/firefox - , activateAntiTracking ? true - , disableFeedbackCommands ? true - , disableDNSOverHTTPS ? true - , disableGoogleSafebrowsing ? false - , clearDataOnShutdown ? false - , homepage ? "about:blank" - # For more information about policies visit - # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled - , extraPolicies ? {} - , extraNativeMessagingHosts ? [] - , gdkWayland ? false - }: - - assert gdkWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used - - let - - # If extraExtensions has been set disable manual extensions - disableManualExtensions = if lib.count (x: true) extraExtensions > 0 then true else false; - - cfg = config.${browserName} or {}; - enableAdobeFlash = cfg.enableAdobeFlash or false; - ffmpegSupport = browser.ffmpegSupport or false; - gssSupport = browser.gssSupport or false; - jre = cfg.jre or false; - icedtea = cfg.icedtea or false; - supportsJDK = - stdenv.hostPlatform.system == "i686-linux" || - stdenv.hostPlatform.system == "x86_64-linux" || - stdenv.hostPlatform.system == "armv7l-linux" || - stdenv.hostPlatform.system == "aarch64-linux"; - - plugins = - assert !(jre && icedtea); - if builtins.hasAttr "enableVLC" cfg - then throw "The option \"${browserName}.enableVLC\" has been removed since Firefox no longer supports npapi plugins" - else - ([ ] - ++ lib.optional enableAdobeFlash flashplayer - ++ lib.optional (cfg.enableDjvu or false) (djview4) - ++ lib.optional (cfg.enableMPlayer or false) (MPlayerPlugin browser) - ++ lib.optional (supportsJDK && jre && jrePlugin ? mozillaPlugin) jrePlugin - ++ lib.optional icedtea icedtea_web - ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid - ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome-shell - ++ lib.optional (cfg.enableBluejeans or false) bluejeans - ++ lib.optional (cfg.enableAdobeReader or false) adobe-reader - ++ lib.optional (cfg.enableEsteid or false) esteidfirefoxplugin - ++ extraPlugins - ); - nativeMessagingHosts = - ([ ] - ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) - ++ lib.optional (cfg.enableBukubrow or false) bukubrow - ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell - ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator - ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration - ++ extraNativeMessagingHosts - ); - libs = lib.optional stdenv.isLinux udev - ++ lib.optional ffmpegSupport ffmpeg - ++ lib.optional gssSupport kerberos - ++ lib.optionals (cfg.enableQuakeLive or false) - (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) - ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash - ++ lib.optional (config.pulseaudio or true) libpulseaudio; - gtk_modules = [ libcanberra-gtk2 ]; - - enterprisePolicies = - { - policies = { - DisableAppUpdate = true; - } // lib.optionalAttrs disableManualExtensions ( - { - ExtensionSettings = { - "*" = { - blocked_install_message = "You can't have manual extension mixed with nix extensions"; - installation_mode = "blocked"; - }; - - } // lib.foldr (e: ret: - ret // { - "${e.extid}" = { - installation_mode = "allowed"; - }; - } - ) {} extraExtensions; - } - ) // lib.optionalAttrs disablePocket ( - { - DisablePocket = true; - } - ) // lib.optionalAttrs disableTelemetry ( - { - DisableTelemetry = true; - } - ) // lib.optionalAttrs disableFirefoxStudies ( - { - DisableFirefoxStudies = true; - } - ) // lib.optionalAttrs disableFirefoxSync ( - { - DisableFirefoxAccounts = true; - } - ) // lib.optionalAttrs useSystemCertificates ( - { - # Disable useless firefox certificate store - Certificates = { - ImportEnterpriseRoots = true; - }; - } - ) // lib.optionalAttrs ( - if lib.count (x: true) extraExtensions > 0 then true else false) ( - { - # Don't try to update nix installed addons - DisableSystemAddonUpdate = true; - - # But update manually installed addons - ExtensionUpdate = false; - } - ) // lib.optionalAttrs dontCheckDefaultBrowser ( - { - DontCheckDefaultBrowser = true; - } - )// lib.optionalAttrs disableDNSOverHTTPS ( - { - DNSOverHTTPS = { - Enabled = false; - }; - } - ) // lib.optionalAttrs clearDataOnShutdown ( - { - SanitizeOnShutdown = true; - } - ) // lib.optionalAttrs disableFeedbackCommands ( - { - DisableFeedbackCommands = true; - } - ) // lib.optionalAttrs ( if homepage == "" then false else true) ( - { - Homepage = { - URL = homepage; - Locked = true; - }; - } - ) // extraPolicies ;} ; - - - extensions = builtins.map (a: - if ! (builtins.hasAttr "signed" a) || ! (builtins.isBool a.signed) then - throw "Addon ${a.pname} needs boolean attribute 'signed' " - else if ! (builtins.hasAttr "extid" a) || ! (builtins.isString a.extid) then - throw "Addon ${a.pname} needs a string attribute 'extid'" - else if a.signed == false && !allowNonSigned then - throw "Disable signature checking in firefox if you want ${a.pname} addon" - else a - ) extraExtensions; - - policiesJson = builtins.toFile "policies.json" - (builtins.toJSON enterprisePolicies); - - mozillaCfg = builtins.toFile "mozilla.cfg" '' - // First line must be a comment - - // Remove default top sites - lockPref("browser.newtabpage.pinned", ""); - lockPref("browser.newtabpage.activity-stream.default.sites", ""); - - // Deactivate first run homepage - lockPref("browser.startup.firstrunSkipsHomepage", false); - - // If true, don't show the privacy policy tab on first run - lockPref("datareporting.policy.dataSubmissionPolicyBypassNotification", true); - - ${ - if allowNonSigned == true then - ''lockPref("xpinstall.signatures.required", false)'' - else - "" - } - - ${ - if showPunycodeUrls == true then - '' - lockPref("network.IDN_show_punycode", true); - '' - else - "" - } - - ${ - if disableManualExtensions == true then - '' - lockPref("extensions.getAddons.showPane", false); - lockPref("extensions.htmlaboutaddons.recommendations.enabled", false); - lockPref("app.update.auto", false); - '' - else - "" - } - - ${ - if disableDrmPlugin == true then - '' - lockPref("media.gmp-gmpopenh264.enabled", false); - lockPref("media.gmp-widevinecdm.enabled", false); - '' - else - "" - } - - ${ - if activateAntiTracking == true then - '' - // Tracking - lockPref("browser.send_pings", false); - lockPref("browser.send_pings.require_same_host", true); - lockPref("network.dns.disablePrefetch", true); - lockPref("browser.contentblocking.trackingprotection.control-center.ui.enabled", false); - lockPref("browser.search.geoip.url", ""); - lockPref("privacy.firstparty.isolate", true); - lockPref("privacy.userContext.enabled", true); - lockPref("privacy.userContext.ui.enabled", true); - lockPref("privacy.firstparty.isolate.restrict_opener_access", false); - lockPref("network.http.referer.XOriginPolicy", 1); - lockPref("network.http.referer.hideOnionSource", true); - lockPref(" privacy.spoof_english", true); - - // This option is currently not usable because of bug: - // https://bugzilla.mozilla.org/show_bug.cgi?id=1557620 - // lockPref("privacy.resistFingerprinting", true); - '' - else "" - } - ${ - if disableTelemetry == true then - '' - // Telemetry - lockPref("browser.newtabpage.activity-stream.feeds.telemetry", false); - lockPref("browser.ping-centre.telemetry", false); - lockPref("devtools.onboarding.telemetry.logged", false); - lockPref("toolkit.telemetry.archive.enabled", false); - lockPref("toolkit.telemetry.bhrPing.enabled", false); - lockPref("toolkit.telemetry.enabled", false); - lockPref("toolkit.telemetry.firstShutdownPing.enabled", false); - lockPref("toolkit.telemetry.hybridContent.enabled", false); - lockPref("toolkit.telemetry.newProfilePing.enabled", false); - lockPref("toolkit.telemetry.shutdownPingSender.enabled", false); - lockPref("toolkit.telemetry.reportingpolicy.firstRun", false); - lockPref("dom.push.enabled", false); - lockPref("browser.newtabpage.activity-stream.feeds.snippets", false); - lockPref("security.ssl.errorReporting.enabled", false); - '' - else "" - } - - ${ - if disableGoogleSafebrowsing == true then - '' - // Google data sharing - lockPref("browser.safebrowsing.blockedURIs.enabled", false); - lockPref("browser.safebrowsing.downloads.enabled", false); - lockPref("browser.safebrowsing.malware.enabled", false); - lockPref("browser.safebrowsing.passwords.enabled", false); - lockPref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); - lockPref("browser.safebrowsing.malware.enabled", false); - lockPref("browser.safebrowsing.phishing.enabled", false); - lockPref("browser.safebrowsing.provider.mozilla.gethashURL", ""); - lockPref("browser.safebrowsing.provider.mozilla.updateURL", ""); - '' - else "" - } - - // User customization - ${extraPrefs} - ''; - in stdenv.mkDerivation { - inherit name; - - desktopItem = makeDesktopItem { - name = browserName; - exec = "${browserName}${nameSuffix} %U"; - inherit icon; - comment = ""; - desktopName = "${desktopName}${nameSuffix}${lib.optionalString gdkWayland " (Wayland)"}"; - genericName = "Web Browser"; - categories = "Application;Network;WebBrowser;"; - mimeType = stdenv.lib.concatStringsSep ";" [ - "text/html" - "text/xml" - "application/xhtml+xml" - "application/vnd.mozilla.xul+xml" - "x-scheme-handler/http" - "x-scheme-handler/https" - "x-scheme-handler/ftp" - ]; - }; - - nativeBuildInputs = [ makeWrapper lndir ]; - buildInputs = lib.optional (browser ? gtk3) browser.gtk3; - - buildCommand = lib.optionalString stdenv.isDarwin '' - mkdir -p $out/Applications - cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications - rm -f $out${browser.execdir or "/bin"}/${browserName} - '' + '' - - # Link the runtime. The executable itself has to be copied, - # because it will resolve paths relative to its true location. - # Any symbolic links have to be replicated as well. - cd "${browser}" - find . -type d -exec mkdir -p "$out"/{} \; - - find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; - - find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do - cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" - chmod a+rwx "$out/$f" - done - - # fix links and absolute references - cd "${browser}" - - find . -type l -print0 | while read -d $'\0' l; do - target="$(readlink "$l" | ${replace}/bin/replace-literal -es -- "${browser}" "$out")" - ln -sfT "$target" "$out/$l" - done - - # This will not patch binaries, only "text" files. - # Its there for the wrapper mostly. - cd "$out" - ${replace}/bin/replace-literal -esfR -- "${browser}" "$out" - - # create the wrapper - - executablePrefix="$out${browser.execdir or "/bin"}" - executablePath="$executablePrefix/${browserName}" - - if [ ! -x "$executablePath" ] - then - echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" - exit 1 - fi - - if [ ! -L "$executablePath" ] - then - # Careful here, the file at executablePath may already be - # a wrapper. That is why we postfix it with -old instead - # of -wrapped. - oldExe="$executablePrefix"/".${browserName}"-old - mv "$executablePath" "$oldExe" - else - oldExe="$(readlink -v --canonicalize-existing "$executablePath")" - fi - - - makeWrapper "$oldExe" "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ - --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ - --suffix LD_LIBRARY_PATH ':' "$libs" \ - --suffix-each GTK_PATH ':' "$gtk_modules" \ - --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))" \ - --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" \ - --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ - --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ - --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ - ${lib.optionalString gdkWayland '' - --set GDK_BACKEND "wayland" \ - ''}${lib.optionalString (browser ? gtk3) - ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ - --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share' - '' - } - - if [ -e "${browser}/share/icons" ]; then - mkdir -p "$out/share" - ln -s "${browser}/share/icons" "$out/share/icons" - else - for res in 16 32 48 64 128; do - mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" - icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) - if [ -e "$icon" ]; then ln -s "$icon" \ - "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" - fi - done - fi - - install -D -t $out/share/applications $desktopItem/share/applications/* - - mkdir -p $out/lib/mozilla - for ext in ${toString nativeMessagingHosts}; do - lndir -silent $ext/lib/mozilla $out/lib/mozilla - done - - # For manpages, in case the program supplies them - mkdir -p $out/nix-support - echo ${browser} > $out/nix-support/propagated-user-env-packages - - # user customization - mkdir -p $out/lib/firefox - - # creating policies.json - mkdir -p "$out/lib/firefox/distribution" - - cat > "$out/lib/firefox/distribution/policies.json" < ${policiesJson} - - # preparing for autoconfig - mkdir -p "$out/lib/firefox/defaults/pref" - - cat > "$out/lib/firefox/defaults/pref/autoconfig.js" < "$out/lib/firefox/mozilla.cfg" < ${mozillaCfg} - - mkdir -p $out/lib/firefox/distribution/extensions - - for i in ${toString extensions}; do - ln -s -t $out/lib/firefox/distribution/extensions $i/* - done - ''; - - preferLocalBuild = true; - - # Let each plugin tell us (through its `mozillaPlugin') attribute - # where to find the plugin in its tree. - plugins = map (x: x + x.mozillaPlugin) plugins; - libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs; - gtk_modules = map (x: x + x.gtkModule) gtk_modules; - - passthru = { unwrapped = browser; }; - - disallowedRequisites = [ stdenv.cc ]; - - meta = browser.meta // { - description = - browser.meta.description - + " (with plugins: " - + lib.concatStrings (lib.intersperse ", " (map (x: x.name) plugins)) - + ")"; - hydraPlatforms = []; - priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package - }; - }; -in - lib.makeOverridable wrapper diff --git a/jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix deleted file mode 100644 index 26751beef..000000000 --- a/jeschli/5pkgs/firefox/font-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "font-fingerprint-defender-${version}"; - version = "0.1.0"; - - extid = "@font-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3387637/font_fingerprint_defender-${version}-an+fx.xpi"; - sha256 = "1aidkvisnx6qd7hn2x756rvzmbnaz6laqbwq0j5yd86g1kc56dr0"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Font fingerprint defender firefox browser addon"; - homepage = https://mybrowseraddon.com/font-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/hopper/default.nix b/jeschli/5pkgs/firefox/hopper/default.nix deleted file mode 100644 index 569fc6aaf..000000000 --- a/jeschli/5pkgs/firefox/hopper/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv, fetchurl, pkgs, makeWrapper, lib }: - -stdenv.mkDerivation rec { - name = "${pname}-${version}"; - pname = "hopper"; - version = "4.5.16"; - rev = "v${lib.versions.major version}"; - - src = fetchurl { - url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz"; - sha256 = "0gjnn7f6ibfx46k4bbj8ra7k04s0mrpq7316brgzks6x5yd1m584"; - }; - - sourceRoot = "."; - - ldLibraryPath = with pkgs; stdenv.lib.makeLibraryPath [ -libbsd.out libffi.out gmpxx.out python27Full.out python27Packages.libxml2.out qt5.qtbase zlib xlibs.libX11.out xorg_sys_opengl.out xlibs.libXrender.out gcc-unwrapped.lib - ]; - - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/lib - mkdir -p $out/share - cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper - cp -r $sourceRoot/opt/hopper-${rev}/lib $out - cp -r $sourceRoot/usr/share $out/share - patchelf \ - --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \ - $out/bin/hopper - # Details: https://nixos.wiki/wiki/Qt - wrapProgram $out/bin/hopper \ - --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \ - --suffix QT_PLUGIN_PATH : ${pkgs.qt5.qtbase}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins - ''; - - meta = { - homepage = "https://www.hopperapp.com/index.html"; - description = "A macOS and Linux Disassembler"; - license = stdenv.lib.licenses.unfree; - maintainers = [ stdenv.lib.maintainers.luis ]; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/jeschli/5pkgs/firefox/https-everywhere/default.nix b/jeschli/5pkgs/firefox/https-everywhere/default.nix deleted file mode 100644 index 66fede43c..000000000 --- a/jeschli/5pkgs/firefox/https-everywhere/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "https-everywhere-${version}"; - version = "2019.6.27"; - - extid = "https-everywhere@eff.org"; - signed = true; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3060290/https_everywhere-${version}-an+fx.xpi"; - sha256 = "0743lhn9phn7n6c0886h9ddn1n8vhzbl0vrw177zs43995aj3frp"; - }; - - phases = [ "installPhase" ]; - - installPhase = '' - install -D ${src} "$out/${extid}.xpi" - - ''; - - meta = { - description = "Https everywhere browser addon"; - homepage = https://www.eff.org/https-everywhere; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/pyocclient/default.nix b/jeschli/5pkgs/firefox/pyocclient/default.nix deleted file mode 100644 index cd91f6171..000000000 --- a/jeschli/5pkgs/firefox/pyocclient/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, python37Packages }: - -python37Packages.buildPythonPackage rec { - pname = "pyocclient"; - version = "0.4"; - - src = python37Packages.fetchPypi { - inherit pname version; - sha256 = "19k3slrk2idixsdw61in9a3jxglvkigkn5kvwl37lj8hrwr4yq6q"; - }; - - doCheck = false; - - propagatedBuildInputs = with python37Packages; [ - requests - six - ]; - - meta = with lib; { - homepage = https://github.com/owncloud/pyocclient/; - description = "Nextcloud / Owncloud library for python"; - license = licenses.mit; - maintainers = with maintainers; [ ]; - }; - -} diff --git a/jeschli/5pkgs/firefox/rmount/default.nix b/jeschli/5pkgs/firefox/rmount/default.nix deleted file mode 100644 index 22631f420..000000000 --- a/jeschli/5pkgs/firefox/rmount/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv, fetchgit, makeWrapper, lib, pkgs ? import {} }: -with pkgs; - -stdenv.mkDerivation rec { - name = "rmount-${version}"; - version = "1.0.1"; - rev = "v${version}"; - - src = fetchgit { - rev = "9df124780d2e66f01c70afaecf92090669c5ffb6"; - url = "https://github.com/Luis-Hebendanz/rmount"; - sha256 = "0ydb6sspfnfa3y6gg1r8sk4r58il6636lpqwb2rw7dzmb4b8hpd2"; - }; - - buildInputs = [ stdenv makeWrapper ]; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/man/man1 - cp ${src}/rmount.man $out/share/man/man1/rmount.1 - cp ${src}/rmount.bash $out/bin/rmount-noenv - cp ${src}/config.json $out/share/config.json - chmod +x $out/bin/rmount-noenv - - makeWrapper $out/bin/rmount-noenv $out/bin/rmount \ - --prefix PATH : ${lib.makeBinPath [ nmap jq cifs-utils sshfs ]} - ''; - - meta = { - homepage = "https://github.com/Luis-Hebendanz/rmount"; - description = "Remote mount utility which parses a json file"; - license = stdenv.lib.licenses.mit; - }; -} diff --git a/jeschli/5pkgs/firefox/ublock-origin/default.nix b/jeschli/5pkgs/firefox/ublock-origin/default.nix deleted file mode 100644 index 002fa3efc..000000000 --- a/jeschli/5pkgs/firefox/ublock-origin/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "ublock-origin-${version}"; - version = "1.21.2"; - - extid = "uBlock0@raymondhill.net"; - signed = true; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3361355/ublock_origin-${version}-an+fx.xpi"; - sha256 = "0ypdq3z61mrymknl37qlq6379bx9f2fsgbgr0czbhqs9f2vwszkc"; - }; - - phases = [ "installPhase" ]; - - installPhase = '' - install -D ${src} "$out/${extid}.xpi" - ''; - - meta = with stdenv.lib; { - description = "ublock origin firefox browser addon"; - homepage = https://github.com/gorhill/uBlock; - license = licenses.gpl3; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/user-agent-switcher/default.nix b/jeschli/5pkgs/firefox/user-agent-switcher/default.nix deleted file mode 100644 index c96f11129..000000000 --- a/jeschli/5pkgs/firefox/user-agent-switcher/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "user-agent-switcher-${version}"; - version = "0.3.2"; - - extid = "@user-agent-switcher"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3370255/user_agent_switcher_and_manager-${version}-an+fx.xpi"; - sha256 = "0lrw1xf6fsxr47bifkayfxpysv8s2p9ghmbmw2s7ymhrgy42i6v5"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "User agent switcher"; - homepage = https://add0n.com/useragent-switcher.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix b/jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix deleted file mode 100644 index 4e608d182..000000000 --- a/jeschli/5pkgs/firefox/webgl-fingerprint-defender/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ stdenv, fetchurl, unzip, jq, zip }: - -stdenv.mkDerivation rec { - pname = "webgl-fingerprint-defender-${version}"; - version = "0.1.2"; - - extid = "@webgl-fingerprint-defender"; - signed = false; - - src = fetchurl { - url = "https://addons.mozilla.org/firefox/downloads/file/3362869/webgl_fingerprint_defender-${version}-an+fx.xpi"; - sha256 = "06hfr5hxr4qw0jx6i9fi9gdk5211z08brnvqj2jlmpyc3dwl4pif"; - }; - - phases = [ "buildPhase" ]; - - buildInputs = [ zip unzip jq ]; - - buildPhase = '' - mkdir -p $out/${extid} - unzip ${src} -d $out/${extid} - NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}}' $out/${extid}/manifest.json) - echo "$NEW_MANIFEST" > $out/${extid}/manifest.json - cd $out/${extid} - zip -r -FS $out/${extid}.xpi * - rm -r $out/${extid} - ''; - - meta = with stdenv.lib; { - description = "Canvas defender firefox browser addon"; - homepage = https://mybrowseraddon.com/webgl-defender.html; - license = { - fullName = "Mozilla Public License Version 2.0"; - shortName = "moz2"; - spdxId = "mozilla-2.0"; - url = "https://www.mozilla.org/en-US/MPL/2.0/"; }; - maintainers = []; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/jeschli/5pkgs/firefox/wl-clipboard/default.nix b/jeschli/5pkgs/firefox/wl-clipboard/default.nix deleted file mode 100644 index 349d910da..000000000 --- a/jeschli/5pkgs/firefox/wl-clipboard/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig -, wayland, wayland-protocols }: - -stdenv.mkDerivation rec { - pname = "wl-clipboard"; - version = "2.0.0"; - - src = fetchFromGitHub { - owner = "bugaevc"; - repo = "wl-clipboard"; - rev = "v${version}"; - sha256 = "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d"; - }; - - nativeBuildInputs = [ meson ninja pkgconfig wayland-protocols ]; - buildInputs = [ wayland ]; - - meta = with stdenv.lib; { - description = "Command-line copy/paste utilities for Wayland"; - homepage = https://github.com/bugaevc/wl-clipboard; - license = licenses.gpl3; - maintainers = with maintainers; [ dywedir ]; - platforms = platforms.linux; - }; -} diff --git a/jeschli/5pkgs/simple/default.nix b/jeschli/5pkgs/simple/default.nix deleted file mode 100644 index 6ba4fec83..000000000 --- a/jeschli/5pkgs/simple/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -with import ; - -self: super: - -let - # This callPackage will try to detect obsolete overrides. - callPackage = path: args: let - override = self.callPackage path args; - upstream = optionalAttrs (override ? "name") - (super.${(parseDrvName override.name).name} or {}); - in if upstream ? "name" && - override ? "name" && - compareVersions upstream.name override.name != -1 - then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override - else override; -in - - mapNixDir (path: callPackage path {}) ./. diff --git a/jeschli/default.nix b/jeschli/default.nix deleted file mode 100644 index b57932719..000000000 --- a/jeschli/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, ... }: -{ - imports = [ - ../krebs - ./2configs - ]; - - nixpkgs.config.packageOverrides = import ./5pkgs pkgs; -} diff --git a/jeschli/krops.nix b/jeschli/krops.nix deleted file mode 100644 index 242f1f7bb..000000000 --- a/jeschli/krops.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ name }: let - inherit (import ../krebs/krops.nix { inherit name; }) - krebs-source - lib - pkgs - ; - - source = { test }: lib.evalSource [ - (krebs-source { test = test; }) - { - nixos-config.symlink = "stockholm/jeschli/1systems/${name}/config.nix"; - nixpkgs-unstable.git = { - url = "https://github.com/nixos/nixpkgs"; - ref = (lib.importJSON ../krebs/nixpkgs-unstable.json).rev; - }; - secrets = if test then { - file = toString ./2configs/tests/dummy-secrets; - } else { - file = "${lib.getEnv "HOME"}/secrets/${name}"; - }; - } - { - home-manager.git = { - url = https://github.com/rycee/home-manager; - ref = "2ccbf43"; - }; - } - ]; - -in { - # usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy) - deploy = { target ? "root@${name}/var/src" }: pkgs.krops.writeDeploy "${name}-deploy" { - source = source { test = false; }; - inherit target; - }; - - # usage: $(nix-build --no-out-link --argstr name HOSTNAME --argstr target PATH -A test) - test = { target }: pkgs.krops.writeTest "${name}-test" { - force = true; - inherit target; - source = source { test = true; }; - }; -}