From 98dca3a16dcd4725f0acd7a4708fe775ed357777 Mon Sep 17 00:00:00 2001 From: Stefan Ellmauthaler Date: Mon, 23 May 2022 14:59:46 +0200 Subject: [PATCH] Add home-manager setup --- flake.lock | 219 +++++------ flake.nix | 5 - machines/stel-xps/default.nix | 7 - modules/base.nix | 6 + modules/users.nix | 26 +- users/ellmau/autorandr.nix | 120 ++++++ users/ellmau/conf/gh/config.yml | 1 + users/ellmau/conf/gpgsm/chain.txt | 88 +++++ users/ellmau/conf/gpgsm/trustlist.txt | 30 ++ users/ellmau/conf/i3/config | 253 +++++++++++++ users/ellmau/conf/i3/fill_workspace4.zsh | 7 + users/ellmau/conf/i3/keepassxc.sh | 5 + .../ellmau/conf/i3/keyboard_layout_toggle.sh | 7 + users/ellmau/conf/i3/workspace4.json | 72 ++++ users/ellmau/default.nix | 58 +++ users/ellmau/dunst.nix | 37 ++ users/ellmau/git.nix | 25 ++ users/ellmau/gpg.nix | 16 + users/ellmau/i3.nix | 9 + users/ellmau/nextcloud.nix | 7 + users/ellmau/polybar.nix | 355 ++++++++++++++++++ users/ellmau/zsh.nix | 81 ++++ 22 files changed, 1287 insertions(+), 147 deletions(-) create mode 100644 users/ellmau/autorandr.nix create mode 100644 users/ellmau/conf/gh/config.yml create mode 100644 users/ellmau/conf/gpgsm/chain.txt create mode 100644 users/ellmau/conf/gpgsm/trustlist.txt create mode 100644 users/ellmau/conf/i3/config create mode 100755 users/ellmau/conf/i3/fill_workspace4.zsh create mode 100755 users/ellmau/conf/i3/keepassxc.sh create mode 100755 users/ellmau/conf/i3/keyboard_layout_toggle.sh create mode 100644 users/ellmau/conf/i3/workspace4.json create mode 100644 users/ellmau/dunst.nix create mode 100644 users/ellmau/git.nix create mode 100644 users/ellmau/gpg.nix create mode 100644 users/ellmau/i3.nix create mode 100644 users/ellmau/nextcloud.nix create mode 100644 users/ellmau/polybar.nix create mode 100644 users/ellmau/zsh.nix diff --git a/flake.lock b/flake.lock index 453410a..16d153b 100644 --- a/flake.lock +++ b/flake.lock @@ -16,29 +16,6 @@ "type": "gitlab" } }, - "comma": { - "inputs": { - "flake-compat": "flake-compat", - "naersk": "naersk", - "nixpkgs": [ - "nixpkgs" - ], - "utils": "utils" - }, - "locked": { - "lastModified": 1650481854, - "narHash": "sha256-CZQLigKovJbMoTbPuWT3SBSMymjD58m72O/oy+HilQg=", - "owner": "nix-community", - "repo": "comma", - "rev": "034a9ca440370fc1eccbed43ff345fb6ea1f0d27", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "comma", - "type": "github" - } - }, "dwarffs": { "inputs": { "nix": [ @@ -63,12 +40,18 @@ } }, "emacs-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1651750171, - "narHash": "sha256-IltysR3/0qLKrhbnUwdLbwFPv26Q9gvxuzqx1h/G/jQ=", + "lastModified": 1653304500, + "narHash": "sha256-3x9Afa3L6rq/5YF7xjSZAynoLrz+nXF4tGen0CPp4Wk=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "4e0481c777deab3f01cb5a6bdddffd49321ea1a3", + "rev": "cd6fbfa22bfd96967231515843fbdef3bda7966f", "type": "github" }, "original": { @@ -77,23 +60,40 @@ "type": "github" } }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1648199409, - "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-utils": { + "locked": { + "lastModified": 1652776076, + "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils-plus": { + "inputs": { + "flake-utils": "flake-utils_2" + }, + "locked": { + "lastModified": 1652704544, + "narHash": "sha256-UTKE33tYgCmDszaVyWA33a8mtegM5xfH4fH8w4y6TxA=", + "owner": "gytis-ivaskevicius", + "repo": "flake-utils-plus", + "rev": "f8d6d1f87b6177e3bc674c29f247bdbf897ba274", + "type": "github" + }, + "original": { + "owner": "gytis-ivaskevicius", + "repo": "flake-utils-plus", + "type": "github" + } + }, + "flake-utils_2": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -108,24 +108,6 @@ "type": "github" } }, - "flake-utils-plus": { - "inputs": { - "flake-utils": "flake-utils" - }, - "locked": { - "lastModified": 1647259887, - "narHash": "sha256-yEkMbEHVO9qydluQ3uHGWX1PkfZhgDKxnd1rhZYZ72w=", - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "06dba5f3b4fa2cc0bfc98ce9cd6f9a4d8db11d46", - "type": "github" - }, - "original": { - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -163,25 +145,6 @@ "type": "github" } }, - "naersk": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1650101877, - "narHash": "sha256-IYxYc5Z1ZHQDTQbTWsOZ9HlZepsVjgV5oZwmbKzxSJs=", - "owner": "nix-community", - "repo": "naersk", - "rev": "8cc379478819e6a22ce7595a761fe1e17c8d7458", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "master", - "repo": "naersk", - "type": "github" - } - }, "nix": { "inputs": { "lowdown-src": "lowdown-src", @@ -191,11 +154,11 @@ "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1651760216, - "narHash": "sha256-g3GDM8MSzJ27hJoGWj2QGjINZP/I1KCJpZZn+iPMmfM=", + "lastModified": 1653291026, + "narHash": "sha256-+QX8Iv7L6yXShj8cCJ53G/GpyKKx8EFWQsnmLRsIGDg=", "owner": "NixOS", "repo": "nix", - "rev": "f4102de84ba4dd3b845a3e34fabab5400e066ad0", + "rev": "50ab1587bf69e9daf9c58b39e9c85c9b80b80515", "type": "github" }, "original": { @@ -206,11 +169,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1650522846, - "narHash": "sha256-SxWHXRI3qJwswyXAtzsi6PKVY3KLNNnb072KaJthII8=", + "lastModified": 1653145312, + "narHash": "sha256-affCuB0Boa8CDFykoJVPZfhHLBok7Sq+QEOJvo3Xf+k=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "6b4ebea9093c997c5f275c820e679108de4871ab", + "rev": "8b5e1bf2fd62adefff05ae67cd49440be93ea193", "type": "github" }, "original": { @@ -222,15 +185,18 @@ }, "nixpkgs": { "locked": { - "lastModified": 1651310835, - "narHash": "sha256-MLk/zsLlbPhwFucxL64Fr+oIrvQC2/76Ap2F7ekbPNI=", - "path": "/nix/store/fj0r6l3gglr0k0b4dxn3hm8drcwclm36-source", - "rev": "fd3e33d696b81e76b30160dfad2efb7ac1f19879", - "type": "path" + "lastModified": 1653087707, + "narHash": "sha256-zfno3snrzZTWQ2B7K53QHrGZwrjnJLTRPalymrSsziU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cbd40c72b2603ab54e7208f99f9b35fc158bc009", + "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-21.11", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-21_05": { @@ -263,6 +229,22 @@ "type": "indirect" } }, + "nixpkgs-21_11_2": { + "locked": { + "lastModified": 1653132211, + "narHash": "sha256-5ugEYisGqixwarfn3BJvuWDnO6gT/AoxlsA6jnG8Fv8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b5991e4971523a5fcc9413b9003b58e5c15aa7d8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-21.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-regression": { "locked": { "lastModified": 1643052045, @@ -280,11 +262,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1651558728, - "narHash": "sha256-8HzyRnWlgZluUrVFNOfZAOlA1fghpOSezXvxhalGMUo=", + "lastModified": 1653060744, + "narHash": "sha256-kfRusllRumpt33J1hPV+CeCCylCXEU7e0gn2/cIM7cY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cbe587c735b734405f56803e267820ee1559e6c1", + "rev": "dfd82985c273aac6eced03625f454b334daae2e8", "type": "github" }, "original": { @@ -295,22 +277,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1651662302, - "narHash": "sha256-utlTjLa1s4ezdQIUvnBtmA9TBYFrPlXpAJnCXEiZFZI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "dff5496b12817e3d019983827c4b7ba7beb96580", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-21.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1626852498, "narHash": "sha256-lOXUJvi0FJUXHTVSiC5qsMRtEUgqM4mGZpMESLuGhmo=", @@ -327,14 +293,13 @@ }, "root": { "inputs": { - "comma": "comma", "dwarffs": "dwarffs", "emacs-overlay": "emacs-overlay", "flake-utils-plus": "flake-utils-plus", "home-manager": "home-manager", "nix": "nix", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", "simple-nixos-mailserver": "simple-nixos-mailserver", "sops-nix": "sops-nix" @@ -343,10 +308,10 @@ "simple-nixos-mailserver": { "inputs": { "blobs": "blobs", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nixpkgs-21_05": "nixpkgs-21_05", "nixpkgs-21_11": "nixpkgs-21_11", - "utils": "utils_2" + "utils": "utils" }, "locked": { "lastModified": 1638911354, @@ -367,14 +332,15 @@ "inputs": { "nixpkgs": [ "nixpkgs" - ] + ], + "nixpkgs-21_11": "nixpkgs-21_11_2" }, "locked": { - "lastModified": 1649756291, - "narHash": "sha256-KTll8bCINAzIUGaaMrbn9wb5nfhkXRLgmFrWGR/Dku0=", + "lastModified": 1653237221, + "narHash": "sha256-zMgangC+wDXvdAz/aP5jDg/Paw7icNFhQIZsJVACMc0=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c2614c4fe61943b3d280ac1892fcebe6e8eaf8c8", + "rev": "13079f98ddfdc9e06e4b688332626ca954c14264", "type": "github" }, "original": { @@ -385,21 +351,6 @@ } }, "utils": { - "locked": { - "lastModified": 1649676176, - "narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "utils_2": { "locked": { "lastModified": 1605370193, "narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=", diff --git a/flake.nix b/flake.nix index 15ccdc0..88b1389 100644 --- a/flake.nix +++ b/flake.nix @@ -16,11 +16,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - comma = { - url = "github:nix-community/comma"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - home-manager = { url = "github:nix-community/home-manager/release-21.11"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/machines/stel-xps/default.nix b/machines/stel-xps/default.nix index 9817c1a..d712e66 100644 --- a/machines/stel-xps/default.nix +++ b/machines/stel-xps/default.nix @@ -32,12 +32,6 @@ }; }; - #networking.hostName = "stel-xps"; # define the hostname - - environment.systemPackages = with pkgs; [ - brightnessctl - ]; - boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; @@ -46,6 +40,5 @@ "v4l2loopback" ]; - services.autorandr.enable = true; services.xserver.desktopManager.wallpaper.mode = "fill"; } diff --git a/modules/base.nix b/modules/base.nix index 8e6156b..b79df8f 100644 --- a/modules/base.nix +++ b/modules/base.nix @@ -28,7 +28,13 @@ with lib; { emacs-all-the-icons-fonts gdb git + htop + neofetch + nix-prefetch-github + nixfmt + nixpkgs-fmt procs + ripgrep rnix-lsp sysstat tcpdump diff --git a/modules/users.nix b/modules/users.nix index 83d3f8c..a54370c 100644 --- a/modules/users.nix +++ b/modules/users.nix @@ -4,6 +4,8 @@ with lib; { options.elss.users = { enable = mkEnableOption "elss specific user configuration"; + x11.enable = mkEnableOption "Activate XSession related options in user-configs"; + users = mkOption { description = "logins of non-admin users to configure"; type = types.listOf types.str; @@ -107,6 +109,28 @@ with lib; { }; }; }; + + mkX11User = login: + let meta = getMeta login; + in + mkIf (cfg.x11.enable) + { + xsession = { + numlock.enable = true; + profileExtra = '' + if [ $(hostname) = 'stel-xps' ]; then + brightnessctl s 50% + fi + ''; + }; + home.file.".background-image".source = ../../common/wallpaper/nix-wallpaper-nineish-dark-gray.png; + + services = { + blueman-applet.enable = true; + network-manager-applet.enable = true; + dunst.enable = true; + }; + }; in mkIf (cfg.enable) @@ -139,6 +163,6 @@ with lib; { (mapUsers mkUser) ]; }; - home-manager.users = (mapAllUsers mkGitUser) // (mapAllUsersAndRoot (_: { config.home.stateVersion = mkDefault "21.05"; })); + home-manager.users = (mapAllUsers mkGitUser) // (mapAllUsers mkX11User) // (mapAllUsersAndRoot (_: { config.home.stateVersion = mkDefault "21.05"; })); }; } diff --git a/users/ellmau/autorandr.nix b/users/ellmau/autorandr.nix new file mode 100644 index 0000000..ae21bc1 --- /dev/null +++ b/users/ellmau/autorandr.nix @@ -0,0 +1,120 @@ +{ config, pkgs, lib, ...}: +{ + programs.autorandr = { + enable = config.variables.graphical; + profiles = { + "home" = { + fingerprint = { + DP-1 = "00ffffffffffff0009d1507945540000221e0104b54627783f5995af4f42af260f5054a56b80d1c0b300a9c08180810081c0010101014dd000a0f0703e8030203500ba892100001a000000ff004e384c30323634373031390a20000000fd00283c87873c010a202020202020000000fc0042656e5120455733323730550a01bc02033af1515d5e5f6061101f222120051404131203012309070783010000e200c06d030c0020003878200060010203e305e001e6060501544c2ca36600a0f0701f8030203500ba892100001a565e00a0a0a029502f203500ba892100001abf650050a0402e6008200808ba892100001c000000000000000000000000000000bf"; + eDP-1 = "00ffffffffffff0006af2b2800000000001c0104a51d117802ee95a3544c99260f50540000000101010101010101010101010101010152d000a0f0703e803020350025a51000001a000000000000000000000000000000000000000000fe0039304e544880423133335a414e0000000000024103a8011100000b010a20200006"; + }; + config = { + eDP-1.enable = false; + DP-1 = { + enable = true; + crtc = 1; + primary = true; + position = "0x0"; + mode = "3840x2160"; + dpi = 96; + }; + }; + }; + "mobile" = { + fingerprint.eDP-1 = "00ffffffffffff0006af2b2800000000001c0104a51d117802ee95a3544c99260f50540000000101010101010101010101010101010152d000a0f0703e803020350025a51000001a000000000000000000000000000000000000000000fe0039304e544880423133335a414e0000000000024103a8011100000b010a20200006"; + config = { + eDP-1 = { + enable = true; + primary = true; + mode = "3840x2160"; + dpi = 192; + }; + }; + }; + "work" = { + fingerprint = { + eDP-1 = "00ffffffffffff0006af2b2800000000001c0104a51d117802ee95a3544c99260f50540000000101010101010101010101010101010152d000a0f0703e803020350025a51000001a000000000000000000000000000000000000000000fe0039304e544880423133335a414e0000000000024103a8011100000b010a20200006"; + DP-2 = "00ffffffffffff0010acb5414c4133452c1e0104b53c22783eee95a3544c99260f5054a54b00e1c0d100d1c0b300a94081808100714f4dd000a0f0703e803020350055502100001a000000ff0031444e593132330a2020202020000000fd00184b1e8c36010a202020202020000000fc0044454c4c205532373230510a2001af020319f14c101f2005140413121103020123097f0783010000a36600a0f0703e803020350055502100001a565e00a0a0a029503020350055502100001a114400a0800025503020360055502100001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d9"; + }; + config = { + eDP-1 = { + enable = true; + crtc = 0; + position = "3840x0"; + mode = "3840x2160"; + #dpi = 288; + dpi = 96; + }; + DP-2 = { + enable = true; + primary = true; + mode = "3840x2160"; + #dpi = 144; + dpi = 96; + position = "0x0"; + }; + }; + }; + "home-nuc" = { + fingerprint = { + DP-2 = "00ffffffffffff0009d1507945540000221e0104b54627783f5995af4f42af260f5054a56b80d1c0b300a9c08180810081c0010101014dd000a0f0703e8030203500ba892100001a000000ff004e384c30323634373031390a20000000fd00283c87873c010a202020202020000000fc0042656e5120455733323730550a01bc02033af1515d5e5f6061101f222120051404131203012309070783010000e200c06d030c0020003878200060010203e305e001e6060501544c2ca36600a0f0701f8030203500ba892100001a565e00a0a0a029502f203500ba892100001abf650050a0402e6008200808ba892100001c000000000000000000000000000000bf"; + }; + config = { + DP-2 = { + enable = true; + crtc = 1; + primary = true; + position = "0x0"; + mode = "3840x2160"; + dpi = 96; + }; + }; + }; + + "e3027" = { + fingerprint = { + e-DP1 = "00ffffffffffff0006af2b2800000000001c0104a51d117802ee95a3544c99260f50540000000101010101010101010101010101010152d000a0f0703e803020350025a51000001a000000000000000000000000000000000000000000fe0039304e544880423133335a414e0000000000024103a8011100000b010a20200006"; + DP-1 = "00ffffffffffff004ca306a7010101011715010380a05a780ade50a3544c99260f5054a10800814081c0950081809040b300a9400101283c80a070b023403020360040846300001a9e20009051201f304880360040846300001c000000fd0017550f5c11000a202020202020000000fc004550534f4e20504a0a202020200116020328f651901f202205140413030212110706161501230907078301000066030c00100080e200fd023a801871382d40582c450040846300001e011d801871382d40582c450040846300001e662156aa51001e30468f330040846300001e302a40c8608464301850130040846300001e00000000000000000000000000000089"; + }; + config = { + eDP-1 = { + enable = true; + crtc = 0; + position = "0x0"; + mode = "3840x2160"; + }; + DP-1 = { + enable = true; + crtc = 1; + position = "3840x0"; + mode = "1920x1200"; + }; + }; + }; + + "e3027-clone" = { + fingerprint = { + e-DP1 = "00ffffffffffff0006af2b2800000000001c0104a51d117802ee95a3544c99260f50540000000101010101010101010101010101010152d000a0f0703e803020350025a51000001a000000000000000000000000000000000000000000fe0039304e544880423133335a414e0000000000024103a8011100000b010a20200006"; + DP-1 = "00ffffffffffff004ca306a7010101011715010380a05a780ade50a3544c99260f5054a10800814081c0950081809040b300a9400101283c80a070b023403020360040846300001a9e20009051201f304880360040846300001c000000fd0017550f5c11000a202020202020000000fc004550534f4e20504a0a202020200116020328f651901f202205140413030212110706161501230907078301000066030c00100080e200fd023a801871382d40582c450040846300001e011d801871382d40582c450040846300001e662156aa51001e30468f330040846300001e302a40c8608464301850130040846300001e00000000000000000000000000000089"; + }; + config = { + eDP-1 = { + enable = true; + crtc = 0; + position = "0x0"; + mode = "1920x1200"; + }; + DP-1 = { + enable = true; + crtc = 1; + position = "0x0"; + mode = "1920x1200"; + }; + }; + }; + }; + hooks.postswitch = { + "polybar" = "systemctl --user restart polybar.service"; + }; + }; +} diff --git a/users/ellmau/conf/gh/config.yml b/users/ellmau/conf/gh/config.yml new file mode 100644 index 0000000..d0d2f3a --- /dev/null +++ b/users/ellmau/conf/gh/config.yml @@ -0,0 +1 @@ +{"aliases":{},"editor":"","git_protocol":"ssh", "prompt":"enabled"} diff --git a/users/ellmau/conf/gpgsm/chain.txt b/users/ellmau/conf/gpgsm/chain.txt new file mode 100644 index 0000000..5f01400 --- /dev/null +++ b/users/ellmau/conf/gpgsm/chain.txt @@ -0,0 +1,88 @@ +subject= /C=DE/ST=Sachsen/L=Dresden/O=Technische Universitaet Dresden/CN=TU Dresden CA +-----BEGIN CERTIFICATE----- +MIIFljCCBH6gAwIBAgIMHG40JD862CwbzJE1MA0GCSqGSIb3DQEBCwUAMIGVMQsw +CQYDVQQGEwJERTFFMEMGA1UEChM8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVz +IERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLEwdERk4t +UEtJMS0wKwYDVQQDEyRERk4tVmVyZWluIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IDIwHhcNMTYxMjEyMTQzOTE2WhcNMzEwMjIyMjM1OTU5WjBzMQswCQYDVQQGEwJE +RTEQMA4GA1UECAwHU2FjaHNlbjEQMA4GA1UEBwwHRHJlc2RlbjEoMCYGA1UECgwf +VGVjaG5pc2NoZSBVbml2ZXJzaXRhZXQgRHJlc2RlbjEWMBQGA1UEAwwNVFUgRHJl +c2RlbiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOfggnONmNft +CebaQElj0mMf9D8ao/ez9Q3cwm04d18KaUbADLajcEvLE8YBzJmzQKJdfLdxKiJE +x/4klxIXeXH+jksh7plW4L2U74zIf3O0d1RmYsKoppYZOP1CVfJ1T76y9uBrpA9e +0bL/oi3uTLHuxyDCe3vXIgK3QgVeVupJP+TtuP2YbbSBLP9iN4vDE5RqAWnrDYJF +Mv3EWgNIcNQQU6w23ytb4W8Vfwlm/nM8tBdDOVt9S06Bq17sKBa4YIJ+V/y6xV7w +m/P/cPo0pPFsxrycOjJTxlx8Lk343+6Hov0tI+4h6uX8iB95RLOfDOJMMZS1Yr9q +3NyiZE1+cZkCAwEAAaOCAgUwggIBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0P +AQH/BAQDAgEGMCkGA1UdIAQiMCAwDQYLKwYBBAGBrSGCLB4wDwYNKwYBBAGBrSGC +LAEBBDAdBgNVHQ4EFgQUUv6+tyTCGwodRlKORCQq9EhAPQEwHwYDVR0jBBgwFoAU +k+PYMiba1fFKpZFK4OpL4qIMz+EwgY8GA1UdHwSBhzCBhDBAoD6gPIY6aHR0cDov +L2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1jYS9wdWIvY3JsL2NhY3Js +LmNybDBAoD6gPIY6aHR0cDovL2NkcDIucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1n +Mi1jYS9wdWIvY3JsL2NhY3JsLmNybDCB3QYIKwYBBQUHAQEEgdAwgc0wMwYIKwYB +BQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBK +BggrBgEFBQcwAoY+aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1n +Mi1jYS9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwSgYIKwYBBQUHMAKGPmh0dHA6Ly9j +ZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtZzItY2EvcHViL2NhY2VydC9jYWNl +cnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBM2ET8sDhpf8GfzHc9oCwzGzt/X+/o +kHK1T0cv5W44y7ftG6LmovMU49SPTfluGToRsMOeYFzDTpwYiqLjg3TXGs08Vuvo +JQOPuSvW8ZACrvZJfSdns6XDMNTzUxRXEtchvrYRkE7bsvt0t3yOlSH8YvkWsBa4 +vbAu9NdKkt0cDkoZobC5N4hI5Q0NfNM5Ac7HXr1h7dbLwC6arHPuw3B7j/jIGL5K +MP9bsh6d78nkxPSu4XcXH18EUPSJHgqPcSyVHspLqLKq0zkDXuGMOIT4ayX0baMh +/dkhanXmXp1XlOvq5Krnr+tV93z4vv8kqVDhslj3YIDeuW0PNRPJyxWF +-----END CERTIFICATE----- +subject= /C=DE/O=Verein zur Foerderung eines Deutschen Forschungsnetzes e. V./OU=DFN-PKI/CN=DFN-Verein Certification Authority 2 +-----BEGIN CERTIFICATE----- +MIIFEjCCA/qgAwIBAgIJAOML1fivJdmBMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD +VQQGEwJERTErMCkGA1UECgwiVC1TeXN0ZW1zIEVudGVycHJpc2UgU2VydmljZXMg +R21iSDEfMB0GA1UECwwWVC1TeXN0ZW1zIFRydXN0IENlbnRlcjElMCMGA1UEAwwc +VC1UZWxlU2VjIEdsb2JhbFJvb3QgQ2xhc3MgMjAeFw0xNjAyMjIxMzM4MjJaFw0z +MTAyMjIyMzU5NTlaMIGVMQswCQYDVQQGEwJERTFFMEMGA1UEChM8VmVyZWluIHp1 +ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUu +IFYuMRAwDgYDVQQLEwdERk4tUEtJMS0wKwYDVQQDEyRERk4tVmVyZWluIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDLYNf/ZqFBzdL6h5eKc6uZTepnOVqhYIBHFU6MlbLlz87TV0uNzvhWbBVV +dgfqRv3IA0VjPnDUq1SAsSOcvjcoqQn/BV0YD8SYmTezIPZmeBeHwp0OzEoy5xad +rg6NKXkHACBU3BVfSpbXeLY008F0tZ3pv8B3Teq9WQfgWi9sPKUA3DW9ZQ2PfzJt +8lpqS2IB7qw4NFlFNkkF2njKam1bwIFrEczSPKiL+HEayjvigN0WtGd6izbqTpEp +PbNRXK2oDL6dNOPRDReDdcQ5HrCUCxLx1WmOJfS4PSu/wI7DHjulv1UQqyquF5de +M87I8/QJB+MChjFGawHFEAwRx1npAgMBAAGjggF0MIIBcDAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFJPj2DIm2tXxSqWRSuDqS+KiDM/hMB8GA1UdIwQYMBaAFL9Z +IDYAeaCgImuM1fJh0rgsy4JKMBIGA1UdEwEB/wQIMAYBAf8CAQIwMwYDVR0gBCww +KjAPBg0rBgEEAYGtIYIsAQEEMA0GCysGAQQBga0hgiweMAgGBmeBDAECAjBMBgNV +HR8ERTBDMEGgP6A9hjtodHRwOi8vcGtpMDMzNi50ZWxlc2VjLmRlL3JsL1RlbGVT +ZWNfR2xvYmFsUm9vdF9DbGFzc18yLmNybDCBhgYIKwYBBQUHAQEEejB4MCwGCCsG +AQUFBzABhiBodHRwOi8vb2NzcDAzMzYudGVsZXNlYy5kZS9vY3NwcjBIBggrBgEF +BQcwAoY8aHR0cDovL3BraTAzMzYudGVsZXNlYy5kZS9jcnQvVGVsZVNlY19HbG9i +YWxSb290X0NsYXNzXzIuY2VyMA0GCSqGSIb3DQEBCwUAA4IBAQCHC/8+AptlyFYt +1juamItxT9q6Kaoh+UYu9bKkD64ROHk4sw50unZdnugYgpZi20wz6N35at8yvSxM +R2BVf+d0a7Qsg9h5a7a3TVALZge17bOXrerufzDmmf0i4nJNPoRb7vnPmep/11I5 +LqyYAER+aTu/de7QCzsazeX3DyJsR4T2pUeg/dAaNH2t0j13s+70103/w+jlkk9Z +PpBHEEqwhVjAb3/4ru0IQp4e1N8ULk2PvJ6Uw+ft9hj4PEnnJqinNtgs3iLNi4LY +2XjiVRKjO4dEthEL1QxSr2mMDwbf0KJTi1eYe8/9ByT0/L3D/UqSApcb8re2z2WK +GqK1chk5 +-----END CERTIFICATE----- +subject= /C=DE/O=T-Systems Enterprise Services GmbH/OU=T-Systems Trust Center/CN=T-TeleSec GlobalRoot Class 2 +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd +AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC +FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi +1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq +jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ +wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ +WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy +NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC +uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw +IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 +g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP +BSeOE6Fuwg== +-----END CERTIFICATE----- diff --git a/users/ellmau/conf/gpgsm/trustlist.txt b/users/ellmau/conf/gpgsm/trustlist.txt new file mode 100644 index 0000000..070a2f9 --- /dev/null +++ b/users/ellmau/conf/gpgsm/trustlist.txt @@ -0,0 +1,30 @@ +# This is the list of trusted keys. Comment lines, like this one, as +# well as empty lines are ignored. Lines have a length limit but this +# is not a serious limitation as the format of the entries is fixed and +# checked by gpg-agent. A non-comment line starts with optional white +# space, followed by the SHA-1 fingerprint in hex, followed by a flag +# which may be one of 'P', 'S' or '*' and optionally followed by a list of +# other flags. The fingerprint may be prefixed with a '!' to mark the +# key as not trusted. You should give the gpg-agent a HUP or run the +# command "gpgconf --reload gpg-agent" after changing this file. + +# Include the default trust list +include-default + +# CN=Deutsche Telekom Root CA 2 +# OU=T-TeleSec Trust Center +# O=Deutsche Telekom AG +# C=DE +85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF S relax + +# CN=T-TeleSec GlobalRoot Class 2 +# OU=T-Systems Trust Center +# O=T-Systems Enterprise Services GmbH +# C=DE +EA:B2:26:12:DB:87:4F:A1:8A:9D:82:FE:C1:4B:25:39:61:A8:CF:44 S relax + +# CN=T-TeleSec GlobalRoot Class 2 +# OU=T-Systems Trust Center +# O=T-Systems Enterprise Services GmbH +# C=DE +59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9 S relax diff --git a/users/ellmau/conf/i3/config b/users/ellmau/conf/i3/config new file mode 100644 index 0000000..7624d7b --- /dev/null +++ b/users/ellmau/conf/i3/config @@ -0,0 +1,253 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# initialise kwallet via pam +#exec --no-startup-id /usr/lib/pam_kwallet_init + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +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 11 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +set $i3lockwall i3lock --nofork -i ~/.background-image -f -e -t +exec --no-startup-id xss-lock --transfer-sleep-lock -- $i3lockwall + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +# ssh agent +#exec .config/plasma-workspace/env/ssh-agent-startup.sh + +# keepass +#exec .config/old-autostart-scripts/keepassxc.sh + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# hide edge borders in a smart way +#hide_edge_borders smart + +# Mod Ctrl d for display resetting +#bindsym $mod+Ctrl+d exec --no-startup-id $HOME/.config/i3/set_xrandr.zsh + +# start a terminal +#export TERMINAL=/usr/bin/alacritty +#bindsym $mod+Return exec i3-sensible-terminal +bindsym $mod+Return exec /etc/profiles/per-user/ellmau/bin/alacritty + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +#bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: + bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +bindsym Mod1+Tab exec "rofi -show window" + +# 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+Ctrl+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: gen" +set $ws2 "2: web" +set $ws3 "3: misc" +set $ws4 "4: comms" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9: secondary" +set $ws10 "10: secondary" + + +workspace 1 output primary +workspace 2 output primary +workspace 3 output primary +workspace 4 output primary +#workspace 9 output eDP-1 +#workspace 10 output eDP-1 + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $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-rs ~/.config/i3status-rust/config.toml +# position top +#} +#exec_always --no-startup-id polybar +exec_always --no-startup-id systemctl --user restart polybar.service + +# shutdown / restart / suspend... +set $mode_system System (l) lock, (CTRL+e) logout, (CTRL+r) reboot, (CTRL+s) shutdown + +mode "$mode_system" { + bindsym l exec --no-startup-id $i3lockwall, mode "default" + bindsym Ctrl+e exec --no-startup-id i3-msg exit, mode "default" + #bindsym s exec --no-startup-id $i3lockwall && systemctl suspend, mode "default" + #bindsym h exec --no-startup-id $i3lockwall && systemctl hibernate, mode "default" + bindsym Ctrl+r exec --no-startup-id systemctl reboot, mode "default" + bindsym Ctrl+s exec --no-startup-id systemctl poweroff -i, mode "default" + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+BackSpace mode "$mode_system" + +# keyboard layout toggle +bindsym $mod+space exec --no-startup-id .config/i3/keyboard_layout_toggle.sh + +# autostart keepassxc +exec --no-startup-id .config/i3/keepassxc.sh + +# autostart other stuff +#exec --no-startup-id i3-msg 'workspace 4: comms; exec signal-desktop' +#exec --no-startup-id i3-msg 'workspace 4: comms; exec element-desktop' + +# application specific stuff +for_window[class="KeePassXC"] floating enable +#assign [class="KeePassXC"] $ws5 +#for_window[class="Thunderbird"] move workspace $ws4 +#for_window[class="Element"] move workspace $ws4 + +# autostart normal programs +#exec --not-startup-id i3-msg 'workspace 4:comms; exec element-desktop' +#exec --not-startup-id i3-msg 'workspace 4:comms; exec thunderbird' +#exec --no-startup-id element-desktop +#exec --no-startup-id thunderbird \ No newline at end of file diff --git a/users/ellmau/conf/i3/fill_workspace4.zsh b/users/ellmau/conf/i3/fill_workspace4.zsh new file mode 100755 index 0000000..86761af --- /dev/null +++ b/users/ellmau/conf/i3/fill_workspace4.zsh @@ -0,0 +1,7 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i zsh -p zsh + +i3-msg 'workspace 4: comms; append_layout /home/ellmau/.config/i3/workspace4.json' +i3-msg 'exec thunderbird' +i3-msg 'exec signal-desktop' +i3-msg 'exec element-desktop' diff --git a/users/ellmau/conf/i3/keepassxc.sh b/users/ellmau/conf/i3/keepassxc.sh new file mode 100755 index 0000000..d5ab66e --- /dev/null +++ b/users/ellmau/conf/i3/keepassxc.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i zsh -p zsh + +sleep 5 +secret-tool lookup keepass unlock | keepassxc --pw-stdin ~/.keepasswd/passwd-store.kdbx diff --git a/users/ellmau/conf/i3/keyboard_layout_toggle.sh b/users/ellmau/conf/i3/keyboard_layout_toggle.sh new file mode 100755 index 0000000..afbd31a --- /dev/null +++ b/users/ellmau/conf/i3/keyboard_layout_toggle.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [[ `setxkbmap -query | awk '$1 == "layout:"{print($2)}'` = "us" ]]; then + setxkbmap -layout de +else + setxkbmap -layout us +fi diff --git a/users/ellmau/conf/i3/workspace4.json b/users/ellmau/conf/i3/workspace4.json new file mode 100644 index 0000000..f3661c1 --- /dev/null +++ b/users/ellmau/conf/i3/workspace4.json @@ -0,0 +1,72 @@ +{ + "border": "normal", + "current_border_width": 2, + "floating": "auto_off", + "geometry": { + "height": 2116, + "width": 3836, + "x": 0, + "y": 0 + }, + "marks": [], + "name": "Inbox - Mozilla Thunderbird", + "percent": 0.5, + "swallows": [ + { + "class": "^Thunderbird$" + } + ], + "type": "con" +} + +{ + "border": "normal", + "floating": "auto_off", + "layout": "splitv", + "marks": [], + "percent": 0.5, + "type": "con", + "nodes": [ + { + "border": "normal", + "current_border_width": 2, + "floating": "auto_off", + "geometry": { + "height": 2116, + "width": 1916, + "x": 1920, + "y": 42 + }, + "marks": [], + "name": "Element | TheoLog 2021", + "percent": 0.5, + "swallows": [ + { + "class": "^Element$" + } + ], + "type": "con" + }, + { + "border": "normal", + "current_border_width": 2, + "floating": "auto_off", + "geometry": { + "height": 2116, + "width": 1276, + "x": 2562, + "y": 42 + }, + "marks": [], + "name": "Signal", + "percent": 0.5, + "swallows": [ + { + "class": "^Signal$" + } + ], + "type": "con" + } + ] +} + diff --git a/users/ellmau/default.nix b/users/ellmau/default.nix index b9e6357..3debea6 100644 --- a/users/ellmau/default.nix +++ b/users/ellmau/default.nix @@ -1,3 +1,61 @@ { config, lib, pkgs, ...}: { + imports = [ + ./autorandr.nix + ./dunst.nix + ./git.nix + ./gpg.nix + ./i3.nix + ./nextcloud.nix + ./polybar.nix + ./zsh.nix + ]; + services = { + gnome-keyring = { + enable = true; + components = [ + "pkcs11" + "secrets" + "ssh" + ]; + }; + + xdg = { + enable = true; + }; + + programs = { + alacritty = { + enable = true; + settings = { + window = { + decorations = "full"; + }; + alt_send_esc = true; + }; + }; + + direnv = { + enable = true; + enableZshIntegration = true; + }; + + home-manager = { + enable = true; + }; + + ssh = { + enable = true; + + forwardAgent = true; + serverAliveInterval = 5; + hashKnownHosts = true; + controlMaster = "auto"; + controlPersist = "60s"; + }; + + go.enable = true; + }; + + }; } diff --git a/users/ellmau/dunst.nix b/users/ellmau/dunst.nix new file mode 100644 index 0000000..259b867 --- /dev/null +++ b/users/ellmau/dunst.nix @@ -0,0 +1,37 @@ +{ config, pkgs, ...}: +{ + services.dunst = { + iconTheme = { + package = pkgs.numix-icon-theme; + name = "Numix"; + size = "26"; + }; + settings = { + global = { + geometry = "800x5-30+50"; + transparency = 10; + frame_color = "#839496"; + font = "Hasklug Nerd Font 10"; + timeout = 5; + follow = "mouse"; + markup = "full"; + icon_position = "left"; + history_length = 32; + dmenu = "${pkgs.rofi}/bin/rofi -dmenu"; + word_wrap = true; + }; + urgency_critical = { + foreground = "#fdf6e3"; + background = "#dc322f"; + }; + urgency_normal = { + foreground = "#fdf6e3"; + background = "#859900"; + }; + urgency_low = { + foreground = "#fdf6e3"; + background = "#2aa198"; + }; + }; + }; +} diff --git a/users/ellmau/git.nix b/users/ellmau/git.nix new file mode 100644 index 0000000..91b0ab0 --- /dev/null +++ b/users/ellmau/git.nix @@ -0,0 +1,25 @@ +{ config, pkgs, lib, ...}: +{ + programs= { + git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + extraConfig = { + core = { editor = "emacsclient"; }; + init = { defaultBranch = "main";}; + branch = { autosetuprebase = "always";}; + safe.directory = [ "/etc/nixos" ]; + }; + lfs.enable = true; + }; + + gh = { + enable = true; + settings = { + aliases = {}; + git_protocol = "ssh"; + prompt = "enabled"; + }; + }; + }; +} diff --git a/users/ellmau/gpg.nix b/users/ellmau/gpg.nix new file mode 100644 index 0000000..81c6c8e --- /dev/null +++ b/users/ellmau/gpg.nix @@ -0,0 +1,16 @@ +{ config, pkgs, lib, ...}: +{ + home.file = { + ".gnupg/gpgsm.conf".text = '' + keyserver ldap.pca.dfn.de::::o=DFN-Verein,c=DE + disable-crl-checks + ''; + ".gnupg/dirmngr_ldapservers.conf".text = "ldap.pca.dfn.de:389:::o=DFN-Verein,c=de,o=DFN-Verein,c=de"; + ".gnupg/trustlist.txt".source = ./conf/gpgsm/trustlist.txt; + ".gnupg/chain.txt".source = ./conf/gpgsm/chain.txt; + }; + + + + programs.gpg.enable = true; +} diff --git a/users/ellmau/i3.nix b/users/ellmau/i3.nix new file mode 100644 index 0000000..db3a25c --- /dev/null +++ b/users/ellmau/i3.nix @@ -0,0 +1,9 @@ +{ config, pkgs, lib, ...}: +{ + xdg = { + configFile."i3" = { + source = conf/i3; + recursive = true; + }; + }; +} diff --git a/users/ellmau/nextcloud.nix b/users/ellmau/nextcloud.nix new file mode 100644 index 0000000..82a7de2 --- /dev/null +++ b/users/ellmau/nextcloud.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + services.nextcloud-client = { + enable = true; + startInBackground = true; + }; +} diff --git a/users/ellmau/polybar.nix b/users/ellmau/polybar.nix new file mode 100644 index 0000000..2c6785b --- /dev/null +++ b/users/ellmau/polybar.nix @@ -0,0 +1,355 @@ +{ config, pkgs, ...}: +{ + services.polybar = { + enable = true; + package = pkgs.polybarFull; + settings = + let + # solarized theme colours ~ https://en.wikipedia.org/wiki/Solarized + + #content tones + Base01 = "#586e75"; + Base00 = "#657b83"; + Base0 = "#839496"; + Base1 = "#93a1a1"; + # background tones + Base2 = "#eee8d5"; + Base3 = "#fdf6e3"; + # accent tones + Yellow = "#b58900"; + Orange = "#cb4b16"; + Red = "#dc322f"; + Magenta = "#d33682"; + Violet = "#6c71c4"; + Blue = "#268bd2"; + Cyan = "#2aa198"; + Green = "#859900"; + + foreground_col = Base3; + background_col = Base01; + + # old bg/fg stuff + #foreground_col = "#eee8d5"; + #background_col = "#6c71c4"; + foreground_altcol = "#66deff"; + primary_col = "#ffb52a"; + secondary_col = "#e60053"; + alert_col = "#dc322f"; + + dpi = '' + ''${env:DPI:0} + ''; + + #polyheight = 60; + + fonts = [ + "Hasklig:style=Regular" + "all-the-icons:style=Regular" + "Webdings:style=Regular" + "Noto Emoji:scale=10" + "Unifont:style=Regular" + "Material Icons:size=12;0" + "Weather Icons:size=12;0" + "Hasklug Nerd Font,Hasklig Medium:style=Medium,Regular" + ]; + in + { + "bar/main" = { + font = fonts; + modules = { + left = "i3 xwindow"; + center = ""; + right = " xbacklight xkeyboard eth wlan battery date powermenu dunst volume "; + }; + + background = background_col; + foreground = foreground_col; + + monitor = '' + ''${env:MONITOR:} + ''; + width = "100%"; + #height = polyheight; + padding = 0; + padding-right = 2; + radius = 14; + module-margin = 1; + line-size = 2; + + dpi-x = dpi; + dpi-y = dpi; + + tray = { + position = "right"; + padding = 2; + background = Base2; + }; + }; + "bar/aux" = { + font = fonts; + modules = { + left = "i3"; + center = ""; + right = " xbacklight xkeyboard eth wlan battery date powermenu volume "; + }; + + background = background_col; + foreground = foreground_col; + + monitor = '' + ''${env:MONITOR:} + ''; + width = "100%"; + #height = polyheight; + radius = 14; + module-margin = 1; + line-size = 2; + + dpi-x = dpi; + dpi-y = dpi; + }; + + "module/volume" = { + type = "internal/pulseaudio"; + format.volume = " "; + label.muted.text = "🔇"; + label.muted.foreground = "#666"; + ramp.volume = ["🔈" "🔉" "🔊"]; + click.right = "${pkgs.pavucontrol}/bin/pavucontrol &"; + # format-volume-underline = Base2; + # format-muted-underline = Base2; + }; + "module/i3" = { + type = "internal/i3"; + format = " "; + index-sort = "true"; + wrapping-scroll = "false"; + + #; Only show workspaces on the same output as the bar + pin-workspaces = "true"; + + label-mode-padding = "2"; + label-mode-foreground = "#000"; + label-mode-background = primary_col; + + #; focused = Active workspace on focused monitor + label-focused = "%name%"; + #;label-focused-background = ${colors.background-alt} + #;label-focused-background = #9f78e1 + label-focused-background = foreground_col; + label-focused-underline= foreground_col; + label-focused-foreground = background_col; + label-focused-padding = "2"; + + #; unfocused = Inactive workspace on any monitor + label-unfocused = "%name%"; + label-unfocused-padding = "2"; + label-unfocused-underline = foreground_col; + + #; visible = Active workspace on unfocused monitor + label-visible = "%name%"; + label-visible-background = Violet; + label-visible-underline = Yellow; + label-visible-padding = 2; + + #; urgent = Workspace with urgency hint set + label-urgent = "%name%"; + label-urgent-background = alert_col; + label-urgent-foreground = primary_col; + label-urgent-padding = "2"; + + #; Separator in between workspaces + #; label-separator = | + }; + "module/xkeyboard" = { + type = "internal/xkeyboard"; + blacklist-0 = "num lock"; + interval = "5"; + + format-prefix = ''""''; + format-prefix-foreground = foreground_altcol; + format-prefix-underline = secondary_col; + + label-layout = "%layout%"; + label-layout-underline = secondary_col; + + label-indicator-padding = "2"; + label-indicator-margin = "1"; + label-indicator-background = secondary_col; + label-indicator-underline = secondary_col; + }; + "module/wlan" = { + type = "internal/network"; + interface = "wlp0s20f3"; + interval = "3.0"; + + format-connected = " "; + format-connected-underline = "#9f78e1"; + label-connected = "%essid%"; + + ramp-signal-0 = ''"0.0"''; + ramp-signal-1 = ''"0.5"''; + ramp-signal-2 = ''"1.0"''; + ramp-signal-3 = ''"1.0"''; + ramp-signal-4 = ''"1.0"''; + + format-disconnected = ""; + # ;format-disconnected = + #;format-disconnected-underline = ${self.format-connected-underline} + #;label-disconnected = %ifname% disconnected + #;label-disconnected-foreground = ${colors.foreground-alt} + + + ramp-signal-foreground = foreground_altcol; + }; + "module/eth" = { + type = "internal/network"; + interface = "eno1"; + interval = "3.0"; + + format-connected-underline = "#55aa55"; + format-connected = " "; + format-connected-prefix-foreground = foreground_altcol; + label-connected = "%local_ip%"; + + format-disconnected = ""; + format-disconnected-background = "#5479b7"; + #;format-disconnected = + #;format-disconnected-underline = ${self.format-connected-underline} + #;label-disconnected = %ifname% disconnected + #;label-disconnected-foreground = ${colors.foreground-alt} + }; + "module/date" = { + type = "internal/date"; + interval = "5"; + + date = ''" %Y-%m-%d"''; + date-alt = ''" %Y-%m-%d"''; + + time = "%H:%M"; + time-alt = "%H:%M:%S"; + + #format-prefix = ""; + #format-prefix-foreground = foreground_altcol; + format-underline = "#0a6cf5"; + + label = "%{A1:${pkgs.tray-calendar}/bin/traycalendar --no-tray:}%{A} %date% %time%"; + }; + "module/battery" = { + type = "internal/battery"; + battery = "BAT0"; + adapter = "ADP1"; + full-at = "98"; + + format-charging-background= "#689d6a"; + format-charging-prefix = ''" "''; + format-charging = ""; + format-discharging-prefix = ''" "''; + format-discharging = ""; + format-discharging-background= "#689d6a"; + format-full-prefix = ''" "''; + + format-charging-underline = "#ffaa55"; + format-full-prefix-foreground = foreground_altcol; + format-full-underline = "#ffaa55"; + + ormat-full-padding = "1"; + format-charging-padding = "1"; + format-discharging-padding = "1"; + }; + "module/temperature" = { + type = "internal/temperature"; + thermal-zone = "0"; + warn-temperature = "60"; + + format = "