2019-10-24 02:20:38 +02:00
|
|
|
{ pkgs, lib, config, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
xmodmapConfig = pkgs.writeText "xmodmap" ''
|
2019-12-20 05:54:26 +01:00
|
|
|
!
|
|
|
|
! 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 + <key>
|
|
|
|
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
|
2019-10-24 02:20:38 +02:00
|
|
|
'';
|
2021-11-01 09:20:42 +01:00
|
|
|
in
|
|
|
|
{
|
2019-10-24 02:20:38 +02:00
|
|
|
|
|
|
|
imports = [
|
2020-03-28 11:50:50 +01:00
|
|
|
./home-manager/dunst.nix
|
2021-09-22 07:30:29 +02:00
|
|
|
./home-manager/doom-emacs.nix
|
2019-10-24 02:20:38 +02:00
|
|
|
./home-manager/ssh.nix
|
|
|
|
./home-manager/xmonad.nix
|
|
|
|
];
|
|
|
|
|
2020-01-01 22:45:29 +01:00
|
|
|
# don't run autoload -U compinit && compinit before ~/.zshrc
|
|
|
|
programs.zsh.enableGlobalCompInit = lib.mkForce false;
|
|
|
|
|
2019-10-24 02:20:38 +02:00
|
|
|
home-manager.users.mainUser = {
|
|
|
|
|
2021-10-20 08:47:59 +02:00
|
|
|
# a better cat
|
|
|
|
programs.bat = {
|
|
|
|
enable = true;
|
|
|
|
config.theme = "Solarized (light)";
|
|
|
|
};
|
|
|
|
|
|
|
|
# notify me when a command is finished
|
2021-10-19 07:02:12 +02:00
|
|
|
programs.noti.enable = true;
|
|
|
|
|
2021-10-20 08:47:59 +02:00
|
|
|
# a better ls
|
|
|
|
programs.exa = {
|
|
|
|
enable = true;
|
|
|
|
enableAliases = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
# use z instead of cd
|
|
|
|
# use zi to fuzzy search through all registered directories
|
2021-10-29 12:49:32 +02:00
|
|
|
programs.zoxide = {
|
|
|
|
enable = true;
|
|
|
|
enableZshIntegration = true;
|
|
|
|
};
|
2021-10-20 08:47:59 +02:00
|
|
|
|
|
|
|
# provide better `Ctrl+r` command in terminal
|
|
|
|
programs.mcfly = {
|
|
|
|
enable = true;
|
|
|
|
keyScheme = "vim";
|
2021-10-29 12:49:32 +02:00
|
|
|
#enableLightTheme = true;
|
2021-10-20 08:47:59 +02:00
|
|
|
enableFuzzySearch = true;
|
2021-10-29 12:49:32 +02:00
|
|
|
enableZshIntegration = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.zsh = {
|
|
|
|
enable = true;
|
|
|
|
defaultKeymap = "viins";
|
2021-10-20 08:47:59 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
home.git-pull = {
|
2021-11-18 21:10:30 +01:00
|
|
|
enable = mkDefault true;
|
2021-10-20 08:47:59 +02:00
|
|
|
repositories = [
|
2021-12-31 19:15:48 +01:00
|
|
|
# krebs
|
2021-12-05 21:25:13 +01:00
|
|
|
{
|
2021-12-31 19:15:48 +01:00
|
|
|
source = "git@github.com:krebs/stockholm.git";
|
|
|
|
target = "~/dev/krebs/stockholm";
|
2021-12-05 21:25:13 +01:00
|
|
|
}
|
|
|
|
{
|
|
|
|
source = "git@github.com:krebs/rc3-map.git";
|
|
|
|
target = "~/dev/krebs/rc3-map";
|
|
|
|
}
|
2021-12-31 19:15:48 +01:00
|
|
|
# spaceleft
|
2021-12-05 21:25:13 +01:00
|
|
|
{
|
2021-12-31 19:15:48 +01:00
|
|
|
source = "git@git.space-left.org:space-left/rc3-map.git";
|
|
|
|
target = "~/dev/space-left/rc3-map";
|
2021-12-05 21:25:13 +01:00
|
|
|
}
|
2021-12-31 19:15:48 +01:00
|
|
|
# nixos
|
2021-10-20 08:47:59 +02:00
|
|
|
{
|
|
|
|
source = "git@github.com:mrVanDalo/home-manager-utils.git";
|
|
|
|
target = "~/dev/home-manager-utils";
|
|
|
|
}
|
2021-12-31 19:15:48 +01:00
|
|
|
{
|
|
|
|
source = "gitlab@gitlab.ingolf-wagner.de:palo/nixos-config.git";
|
2022-01-01 09:36:01 +01:00
|
|
|
target = "~/dev/nixos-config";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
source = "gitlab@gitlab.ingolf-wagner.de:palo/nixos-secrets.git";
|
|
|
|
target = "~/dev/nixos-secrets";
|
2021-12-31 19:15:48 +01:00
|
|
|
}
|
|
|
|
# terranix
|
2021-10-20 08:47:59 +02:00
|
|
|
{
|
|
|
|
source = "git@github.com:terranix/terranix.git";
|
|
|
|
target = "~/dev/terranix/terranix";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
source = "git@github.com:terranix/terranix-website.git";
|
|
|
|
target = "~/dev/terranix/website";
|
|
|
|
}
|
2021-11-11 05:19:34 +01:00
|
|
|
{
|
|
|
|
source = "git@github.com:terranix/terranix-hcloud.git";
|
|
|
|
target = "~/dev/terranix/module-hcloud";
|
|
|
|
}
|
2021-10-20 08:47:59 +02:00
|
|
|
{
|
|
|
|
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";
|
|
|
|
}
|
2022-04-18 17:59:18 +02:00
|
|
|
# private
|
|
|
|
{
|
|
|
|
source = "gitea@git.ingolf-wagner.de:palo/tech-ingolf-wagner-de.git";
|
|
|
|
target = "~/dev/tech.ingolf-wagner.de";
|
|
|
|
}
|
2021-10-20 08:47:59 +02:00
|
|
|
];
|
|
|
|
};
|
2021-09-29 22:42:48 +02:00
|
|
|
|
2019-12-27 22:31:26 +01:00
|
|
|
home.file.".config/bugwarrior/bugwarriorrc".text = ''
|
|
|
|
[general]
|
2022-04-18 17:59:18 +02:00
|
|
|
targets = terranix, github_private
|
2019-12-27 22:31:26 +01:00
|
|
|
static_fields = priority
|
|
|
|
log.level = INFO
|
2019-12-27 01:10:49 +01:00
|
|
|
|
2021-09-11 21:56:15 +02:00
|
|
|
[terranix]
|
2019-12-27 22:31:26 +01:00
|
|
|
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
|
2021-09-11 21:56:15 +02:00
|
|
|
github.project_name = terranix
|
|
|
|
github.involved_issues = True
|
|
|
|
github.query = org:terranix is:open
|
2019-12-27 22:31:26 +01:00
|
|
|
github.include_user_issues = False
|
|
|
|
github.include_user_repos = False
|
2022-04-18 17:59:18 +02:00
|
|
|
|
|
|
|
[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
|
2019-12-27 22:31:26 +01:00
|
|
|
'';
|
2019-12-26 00:55:02 +01:00
|
|
|
|
2021-10-10 19:06:24 +02:00
|
|
|
xdg.configFile."ncmpcpp/config".text = ''
|
2021-10-20 08:47:59 +02:00
|
|
|
mpd_host = "pepe.private"
|
|
|
|
mpd_port = 6600
|
2021-10-10 19:06:24 +02:00
|
|
|
'';
|
|
|
|
|
2019-12-02 01:03:38 +01:00
|
|
|
|
2019-10-24 02:20:38 +02:00
|
|
|
programs.git = {
|
|
|
|
enable = true;
|
|
|
|
userName = "Ingolf Wagner";
|
|
|
|
userEmail = "contact@ingolf-wagner.de";
|
|
|
|
signing = {
|
|
|
|
key = "42AC51C9482D0834CF488AF1389EC2D64AC71EAC";
|
|
|
|
signByDefault = true;
|
|
|
|
};
|
2021-04-17 16:43:33 +02:00
|
|
|
ignores = [ "*.swp" "*~" ".idea" ".*penis.*" ];
|
|
|
|
extraConfig = {
|
|
|
|
init.defaultBranch = "main";
|
|
|
|
pull.ff = "only";
|
|
|
|
};
|
2019-10-24 02:20:38 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
programs.gpg = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
auto-key-locate = "local";
|
|
|
|
keyid-format = "long";
|
|
|
|
utf8-strings = "";
|
|
|
|
verbose = "";
|
|
|
|
with-fingerprint = "";
|
2021-07-13 22:33:16 +02:00
|
|
|
keyserver = "keyserver.ubuntu.com";
|
2019-10-24 02:20:38 +02:00
|
|
|
personal-digest-preferences = "SHA512";
|
|
|
|
cert-digest-algo = "SHA512";
|
2019-12-20 05:54:26 +01:00
|
|
|
default-preference-list =
|
|
|
|
"SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
2019-10-24 02:20:38 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.htop = {
|
|
|
|
enable = true;
|
2021-09-25 15:17:07 +02:00
|
|
|
settings.highlight_base_name = true;
|
|
|
|
settings.tree_view = true;
|
2019-10-24 02:20:38 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
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
|
|
|
|
'';
|
|
|
|
|
2019-12-20 05:54:26 +01:00
|
|
|
home.file.".xprofile".text = ''
|
2019-10-24 02:20:38 +02:00
|
|
|
# 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
|
|
|
|
'';
|
|
|
|
|
2020-03-11 14:58:26 +01:00
|
|
|
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"
|
|
|
|
'';
|
|
|
|
|
2019-10-24 02:20:38 +02:00
|
|
|
};
|
|
|
|
|
2021-11-01 09:20:42 +01:00
|
|
|
environment.systemPackages =
|
|
|
|
let
|
|
|
|
library = import ../../library { inherit pkgs lib; };
|
2019-10-24 02:20:38 +02:00
|
|
|
|
2021-11-01 09:20:42 +01:00
|
|
|
fixKeyboard = pkgs.writeScriptBin "fix-Keyboard" # sh
|
|
|
|
''
|
|
|
|
${pkgs.xorg.xmodmap}/bin/xmodmap ${xmodmapConfig}
|
|
|
|
'';
|
2019-10-24 02:20:38 +02:00
|
|
|
|
2021-11-01 09:20:42 +01:00
|
|
|
fixXhost = pkgs.writeScriptBin "fix-xhost" # sh
|
|
|
|
''
|
|
|
|
${pkgs.xorg.xhost}/bin/xhost + &> /dev/null
|
|
|
|
'';
|
2019-10-24 02:20:38 +02:00
|
|
|
|
2021-11-01 09:20:42 +01:00
|
|
|
fixX = pkgs.writeScriptBin "fix-X" # sh
|
|
|
|
''
|
2019-10-24 02:20:38 +02:00
|
|
|
|
|
|
|
${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
|
|
|
|
'';
|
2021-11-01 09:20:42 +01:00
|
|
|
in
|
|
|
|
[
|
|
|
|
fixX
|
|
|
|
fixXhost
|
|
|
|
(library.desktopFile fixX { longName = "fix X"; })
|
|
|
|
fixKeyboard
|
|
|
|
(library.desktopFile fixKeyboard { longName = "fix keyboard"; })
|
|
|
|
];
|
2019-10-24 02:20:38 +02:00
|
|
|
|
|
|
|
}
|