{ pkgs, lib, config, ... }: with lib; let xmodmapConfig = pkgs.writeText "xmodmap" '' ! ! Swap Caps_Lock and Control_L ! ! replace capslock keys with Escape Keys ! remove Lock = Caps_Lock clear Lock add Lock = Scroll_Lock keysym Caps_Lock = Escape ! Set Right function Key to Windows-key keycode 135 = Super_R NoSymbol Super_R NoSymbol Super_R ! Map umlauts to RIGHT ALT + keycode 108 = Mode_switch keysym e = e E EuroSign keysym c = c C cent keysym a = a A adiaeresis Adiaeresis keysym o = o O odiaeresis Odiaeresis keysym u = u U udiaeresis Udiaeresis keysym s = s S ssharp ''; in { imports = [ ./home-manager/dunst.nix ./home-manager/doom-emacs.nix ./home-manager/ssh.nix ./home-manager/xmonad.nix ./home-manager/i3.nix ]; # don't run autoload -U compinit && compinit before ~/.zshrc programs.zsh.enableGlobalCompInit = lib.mkForce false; home-manager.users.mainUser = { home.stateVersion = "22.11"; # nushell is the new shit yeah programs.nushell = { enable = lib.mkDefault true; package = pkgs.unstable.nushell; }; # a better cat programs.bat = { enable = true; config.theme = "Solarized (light)"; }; # notify me when a command is finished programs.noti.enable = true; # a better ls programs.exa = { enable = true; enableAliases = true; }; # use z instead of cd # use zi to fuzzy search through all registered directories programs.zoxide = { enable = true; enableZshIntegration = true; }; # provide better `Ctrl+r` command in terminal programs.mcfly = { enable = true; keyScheme = "vim"; #enableLightTheme = true; fuzzySearchFactor = 3; enableZshIntegration = true; }; programs.zsh = { enable = true; defaultKeymap = "viins"; }; home.git-pull = { enable = mkDefault false; repositories = [ # krebs #{ # source = "git@github.com:krebs/stockholm.git"; # target = "~/dev/krebs/stockholm"; #} { source = "git@github.com:krebs/rc3-map.git"; target = "~/dev/krebs/rc3-map"; } # spaceleft { source = "git@git.space-left.org:space-left/rc3-map.git"; target = "~/dev/space-left/rc3-map"; } # nixos { source = "git@github.com:mrVanDalo/home-manager-utils.git"; target = "~/dev/home-manager-utils"; } { source = "gitea@git.ingolf-wagner.de:palo/nixos-config.git"; target = "~/dev/nixos/nixos-config"; } { source = "gitea@git.ingolf-wagner.de:palo/nixos-private-assets.git"; target = "~/dev/nixos/nixos-private-assets"; } { source = "gitea@git.ingolf-wagner.de:palo/nixos-secrets.git"; target = "~/dev/nixos/nixos-secrets"; } # terranix { source = "git@github.com:terranix/terranix.git"; target = "~/dev/terranix/terranix"; } { source = "git@github.com:terranix/terranix-website.git"; target = "~/dev/terranix/website"; } { source = "git@github.com:terranix/terranix-hcloud.git"; target = "~/dev/terranix/module-hcloud"; } { source = "git@github.com:terranix/terranix-module-github.git"; target = "~/dev/terranix/module-github"; } { source = "git@github.com:terranix/terranix-github-configuration.git"; target = "~/dev/terranix/configuration-github"; } { source = "git@github.com:terranix/terranix-examples.git"; target = "~/dev/terranix/examples"; } { source = "git@github.com:terranix/terranix-artwork.git"; target = "~/dev/terranix/artwork"; } # private { source = "gitea@git.ingolf-wagner.de:palo/tech-ingolf-wagner-de.git"; target = "~/dev/tech.ingolf-wagner.de"; } ]; }; home.file.".config/bugwarrior/bugwarriorrc".text = '' [general] targets = terranix, github_private static_fields = priority log.level = INFO [terranix] service = github github.login = mrVanDalo github.token = @oracle:eval:${pkgs.pass}/bin/pass development/github/mrVanDalo/bugwarriorAccessToken github.username = mrVanDalo github.default_priority = github.description_template = {{githubtitle}} {{githuburl}} github.add_tags = github github.project_name = terranix github.involved_issues = True github.query = org:terranix is:open github.include_user_issues = False github.include_user_repos = False [github_private] service = github github.login = mrVanDalo github.token = @oracle:eval:${pkgs.pass}/bin/pass development/github/mrVanDalo/bugwarriorAccessToken github.username = mrVanDalo github.description_template = {{githubtitle}} {{githuburl}} github.add_tags = github github.involved_issues = True github.include_user_issues = True github.include_user_repos = True ''; xdg.configFile."ncmpcpp/config".text = '' mpd_host = "pepe.private" mpd_port = 6600 ''; programs.git = { enable = true; userName = "Ingolf Wagner"; userEmail = "contact@ingolf-wagner.de"; signing = { key = "42AC51C9482D0834CF488AF1389EC2D64AC71EAC"; signByDefault = true; }; ignores = [ "*.swp" "*~" ".idea" ".*penis.*" "result" ]; extraConfig = { init.defaultBranch = "main"; pull.ff = "only"; }; }; programs.gpg = { enable = true; settings = { auto-key-locate = "local"; keyid-format = "long"; utf8-strings = ""; verbose = ""; with-fingerprint = ""; keyserver = "keyserver.ubuntu.com"; personal-digest-preferences = "SHA512"; cert-digest-algo = "SHA512"; default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed"; }; }; programs.htop = { enable = true; settings.highlight_base_name = true; settings.tree_view = true; }; xdg.configFile."albert/albert.conf".text = '' [General] hotkey=Meta+Space showTray=false telemetry=false terminal=urxvt -e [org.albert.extension.applications] enabled=true fuzzy=true use_generic_name=true use_keywords=true [org.albert.extension.calculator] enabled=true [org.albert.extension.hashgenerator] enabled=true [org.albert.frontend.widgetboxmodel] alwaysOnTop=true clearOnHide=false displayIcons=true displayScrollbar=false displayShadow=false hideOnClose=false hideOnFocusLoss=true itemCount=5 showCentered=true theme=SolarizedBrightViolet ''; xdg.configFile."Code/User/settings.json".text = builtins.toJSON { "keyboard.dispatch" = "keyCode"; "explorer.confirmDragAndDrop" = false; "editor.tabSize" = 2; "window.zoomLevel" = -1; "git.enableSmartCommit" = true; "files.autoSave" = "onFocusChange"; "terminal.integrated.setLocaleVariables" = true; "terminal.external.linuxExec" = "xterm"; "explorer.confirmDelete" = false; "todo-tree.tags" = [ "todo" "TODO" "fixme" "FIXME" ]; "workbench.colorTheme" = "Solarized Light"; }; xdg.configFile."mimeapps.list".text = '' [Default Applications] text/html=browser-select.desktop x-scheme-handler/http=browser-select.desktop x-scheme-handler/https=browser-select.desktop x-scheme-handler/about=browser-select.desktop x-scheme-handler/mailto=thunderbird.desktop; x-scheme-handler/unknown=browser-select.desktop x-scheme-handler/postman=Postman.desktop image/png=sxiv.desktop image/jpeg=sxiv.desktop ''; home.file.".xprofile".text = '' # load keyboard mappings ${pkgs.xorg.xmodmap}/bin/xmodmap ${xmodmapConfig} # to allow sudo commands to access X # todo : only allow the browsers and rambox access ${pkgs.xorg.xhost}/bin/xhost + # no shitty pcspkr crap ${pkgs.xorg.xset}/bin/xset -b # no sleeping monitor ${pkgs.xorg.xset}/bin/xset -dpms ${pkgs.xorg.xset}/bin/xset s off ${pkgs.flameshot}/bin/flameshot & # cleanup xmonad rm -f ~/.xmonad/xmonad.state ''; xdg.configFile."khal/config".text = '' [calendars] [[local_calendar]] path = ~/.calendars/* type = discover [locale] timeformat = %H:%M dateformat = %Y-%m-%d longdateformat = %Y-%m-%d datetimeformat = %Y-%m-%d %H:%M longdatetimeformat = %Y-%m-%d %H:%M ''; xdg.configFile."vdirsyncer/config".text = '' [general] # A folder where vdirsyncer can store some metadata about each pair. status_path = "~/.vdirsyncer/status/" # CALDAV [pair my_calendar] a = "nextcloud_calendar" b = "local_calendar" collections = ["from a", "from b"] [storage nextcloud_calendar] type = "caldav" url = "https://nextcloud.ingolf-wagner.de/" username = "palo" password.fetch = ["command", "${pkgs.pass}/bin/pass", "home/nextcloud/vdirsyncer/password"] [storage local_calendar] type = "filesystem" path = "~/.calendars/" fileext = ".ics" ''; }; environment.systemPackages = let library = import ../../library { inherit pkgs lib; }; fixKeyboard = pkgs.writeScriptBin "fix-Keyboard" # sh '' ${pkgs.xorg.xmodmap}/bin/xmodmap ${xmodmapConfig} ''; fixXhost = pkgs.writeScriptBin "fix-xhost" # sh '' ${pkgs.xorg.xhost}/bin/xhost + &> /dev/null ''; fixX = pkgs.writeScriptBin "fix-X" # sh '' ${fixKeyboard}/bin/fix-Keyboard for file in `ls ~/.screenlayout` do echo $file ~/.screenlayout/$file &> /dev/null RETURN_CODE=$? if [[ $RETURN_CODE -eq 0 ]] then exit 0; fi done ''; in [ fixX fixXhost (library.desktopFile fixX { longName = "fix X"; }) fixKeyboard (library.desktopFile fixKeyboard { longName = "fix keyboard"; }) ]; }