{ pkgs, ... }: let homeDirectory = "/home/moco"; in { # Home Manager needs a bit of information about you and the paths it should # manage. home = { username = "moco"; inherit homeDirectory; packages = with pkgs; [ (slack.overrideAttrs (oldAttrs: { fixupPhase = '' sed -i -e 's/,"WebRTCPipeWireCapturer"/,"LebRTCPipeWireCapturer"/' $out/lib/slack/resources/app.asar rm $out/bin/slack makeWrapper $out/lib/slack/slack $out/bin/slack \ --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \ --add-flags "--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer" ''; })) kooha gnome-pomodoro mitmproxy (writeShellScriptBin "moco-admin-pw" '' password=$(op item get fkj74ou6jfex7a6gcinac6o5oe --reveal --fields label=Kennwort) otp=$(ykman oath accounts code -s 'MOCO:Admin') echo "''${password}''${otp}" | wl-copy -n '') (writeShellScriptBin "moco-reto-otp" '' ykman oath accounts code -s 'MOCO Reto' | wl-copy -n '') ]; }; gnome = { profilePicture = ../assets/profile-pictures/moco.png; calendar.showWeekNumbers = true; extensions.paperwm.winprops = [ { wm_class = "gnome-pomodoro"; scratch_layer = true; } ]; }; programs.poetry = { enable = true; settings = { virtualenvs = { create = true; inProject = true; }; }; }; programs.zsh = { cdpath = [ "${homeDirectory}/Code/mocoapp" "${homeDirectory}/Code/mocoapp-promo" "${homeDirectory}/Code/mocoapp-llama" ]; dirHashes = { moco = "${homeDirectory}/Code/mocoapp"; promo = "${homeDirectory}/Code/mocoapp-promo"; llama = "${homeDirectory}/Code/mocoapp-llama"; }; }; programs.git.extraConfig.user.email = "joakim.repomaa@mocoapp.com"; programs.neovim = { withTreesitterPlugins = p: [ p.ruby p.javascript p.typescript p.graphql ]; formatters = [ { filetypes = [ "ruby" ]; globs = [ "*.rb" "Gemfile" "*.rake" ]; exe = "bundle"; args = file: [ "exec" "rufo" "-x" "--filename" file ]; stdin = true; } { filetypes = [ "javascript" "typescript" "javascriptreact" "typescriptreact" ]; globs = [ "*.js" "*.jsx" "*.ts" "*.tsx" ]; exe = "npx"; args = file: [ "prettier" "--stdin-filepath" file ]; stdin = true; } ]; lsp.servers = with pkgs; [ { name = "ruby_lsp"; config = { init_options = { formatter = "auto"; }; }; package = ruby-lsp; } { name = "graphql"; package = nodePackages.graphql-language-service-cli; } ]; }; programs.ssh.matchBlocks = let aliases = [ "moco" "mocoapp" "mocoapp.com" ]; matcher = subdomains: builtins.concatStringsSep " " ( map (alias: builtins.concatStringsSep " " ( map (subdomain: "*.${subdomain}.${alias} ${subdomain}.${alias}") subdomains )) aliases); in { "console.*.moco" = { extraOptions = { RequestTTY = "force"; RemoteCommand = "./rails-console.sh"; }; }; "${matcher ["reto" "reto.intern"]}" = { hostname = "reto.intern.mocoapp.com"; user = "jokke"; }; "${matcher ["web"]}" = { hostname = "mocoapp.com"; }; "${matcher ["prod-inc"]}" = { hostname = "prod-inc.mocoapp.com"; }; "${matcher ["prod"]}" = { hostname = "web02.mocoapp"; }; "${matcher ["pfg" "primeforcegroup"]}" = { hostname = "primeforcegroup.mocoapp.com"; }; "${matcher ["crafft"]}" = { hostname = "crafft.mocoapp.com"; }; "${matcher ["bd" "businessdecision"]}" = { hostname = "businessdecision.mocoapp.com"; }; "${matcher ["festland"]}" = { hostname = "festland.mocoapp.com"; }; "${matcher ["oi" "one-inside"]}" = { hostname = "one-inside.mocoapp.com"; }; "${matcher ["se" "scope-engineering"]}" = { hostname = "scope-engineering.mocoapp.com"; }; "${matcher ["cpc" "cpc-ag"]}" = { hostname = "cpc-ag.mocoapp.com"; }; "${matcher ["weareact3"]}" = { hostname = "weareact3.mocoapp.com"; }; "${matcher ["avenit"]}" = { hostname = "avenit.mocoapp.com"; }; "${matcher ["staging"]}" = { hostname = "staging.mocoapp.com"; }; "${matcher ["staging-v2"]}" = { hostname = "staging-v2.mocoapp.com"; }; "${matcher ["staging-v3"]}" = { hostname = "staging-v3.mocoapp.com"; }; "${matcher ["staging-v4"]}" = { hostname = "staging-v4.mocoapp.com"; }; "${matcher ["staging-v5"]}" = { hostname = "staging-v5.mocoapp.com"; }; "${matcher ["staging-v6"]}" = { hostname = "staging-v6.mocoapp.com"; }; "${matcher ["prod-db" "production-db"]}" = { hostname = "production-db.mocoapp"; }; "${matcher ["pdf-renderer"]}" = { hostname = "mocoapp-pdf-renderer01.mocoapp.com"; }; "*.moco *.mocoapp *.mocoapp.com" = { forwardAgent = true; }; "*.moco !reto.moco *.mocoapp.com !reto.mocoapp.com" = { user = "butler"; }; }; }