{ 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/spacemacs.nix ./home-manager/spacevim.nix ./home-manager/ssh.nix ./home-manager/xmonad.nix ]; # don't run autoload -U compinit && compinit before ~/.zshrc programs.zsh.enableGlobalCompInit = lib.mkForce false; home-manager.users.mainUser = { home.file.".config/bugwarrior/bugwarriorrc".text = '' [general] targets = my-github,nixos-github static_fields = priority log.level = INFO [my-github] 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.involved_issues = False github.exclude_repos = azubi,stepp0r github.include_user_repos = True github.include_user_issues = False [nixos-github] 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.involved_issues = False github.include_user_repos = False github.include_user_issues = False github.query = involves:mrVanDalo is:open org:NixOS org:krebs org:xmonad ''; home.file.".zshrc".text = '' # a fix for https://github.com/NixOS/nixpkgs/issues/27587 autoload -U compinit && compinit ''; programs.git = { enable = true; userName = "Ingolf Wagner"; userEmail = "contact@ingolf-wagner.de"; signing = { key = "42AC51C9482D0834CF488AF1389EC2D64AC71EAC"; signByDefault = true; }; ignores = [ "*.swp" "*~" ".idea" ]; }; programs.gpg = { enable = true; settings = { auto-key-locate = "local"; keyid-format = "long"; utf8-strings = ""; verbose = ""; with-fingerprint = ""; keyserver = "hkp://pgp.mit.edu"; 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; highlightBaseName = true; treeView = 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 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 { 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"; }) ]; }