202 lines
5.5 KiB
Nix
202 lines
5.5 KiB
Nix
{ 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";
|
|
};
|
|
};
|
|
}
|