2023-03-26 16:33:03 +00:00
|
|
|
|
{ pkgs, config, lib, ... }: {
|
|
|
|
|
imports = [
|
2023-10-04 12:56:46 +00:00
|
|
|
|
../restic.nix
|
2023-04-13 11:28:59 +00:00
|
|
|
|
./audio.nix
|
2023-10-04 12:56:46 +00:00
|
|
|
|
./bspwm.nix
|
2023-03-27 15:21:43 +00:00
|
|
|
|
./dunst.nix
|
2023-10-04 12:56:46 +00:00
|
|
|
|
./element.nix
|
2023-03-26 16:33:03 +00:00
|
|
|
|
./iosevka.nix
|
|
|
|
|
./kitty.nix
|
2023-10-04 12:56:46 +00:00
|
|
|
|
./lockscreen.nix
|
|
|
|
|
./picom.nix
|
|
|
|
|
./polybar.nix
|
|
|
|
|
./rofi.nix
|
2023-06-01 17:07:54 +00:00
|
|
|
|
./spotify.nix
|
2023-10-22 11:14:41 +00:00
|
|
|
|
./syncthing.nix
|
2023-10-04 12:56:46 +00:00
|
|
|
|
./theme.nix
|
|
|
|
|
./url-eater.nix
|
2023-03-26 16:33:03 +00:00
|
|
|
|
];
|
|
|
|
|
|
2023-09-17 16:57:46 +00:00
|
|
|
|
nixpkgs.overlays = [
|
|
|
|
|
(final: prev: {
|
|
|
|
|
pads = final.callPackage ../../../common/pkgs/pads.nix { };
|
|
|
|
|
bspm = final.callPackage ../../../common/pkgs/bspm.nix { };
|
|
|
|
|
polybar-spotify =
|
|
|
|
|
final.callPackage ../../../common/pkgs/polybar-spotify.nix { };
|
|
|
|
|
})
|
|
|
|
|
];
|
|
|
|
|
|
2023-03-26 16:33:03 +00:00
|
|
|
|
# User packages
|
|
|
|
|
users.users.agatha.packages = with pkgs; [
|
2023-06-01 17:07:54 +00:00
|
|
|
|
blueberry
|
2023-03-26 16:33:03 +00:00
|
|
|
|
brightnessctl
|
|
|
|
|
broot
|
2023-07-27 18:14:58 +00:00
|
|
|
|
bspm
|
2023-06-01 17:07:54 +00:00
|
|
|
|
clipmenu
|
2023-03-26 16:33:03 +00:00
|
|
|
|
colmena
|
2023-10-22 11:14:41 +00:00
|
|
|
|
darktable
|
2023-09-17 16:57:46 +00:00
|
|
|
|
element-desktop
|
2023-06-19 17:16:14 +00:00
|
|
|
|
ffmpeg
|
2023-03-26 16:33:03 +00:00
|
|
|
|
flameshot
|
2023-06-19 17:16:14 +00:00
|
|
|
|
gimp
|
2023-03-27 15:21:43 +00:00
|
|
|
|
glib
|
2023-03-26 16:33:03 +00:00
|
|
|
|
gnome.eog
|
|
|
|
|
gnome.file-roller
|
|
|
|
|
gnome.gnome-calendar
|
|
|
|
|
gnome.gnome-control-center
|
|
|
|
|
gnome.gnome-disk-utility
|
|
|
|
|
gnome.gnome-font-viewer
|
|
|
|
|
gnome.nautilus
|
|
|
|
|
gnome.totem
|
|
|
|
|
hyperfine
|
|
|
|
|
magic-wormhole
|
|
|
|
|
neofetch
|
2023-06-01 17:07:54 +00:00
|
|
|
|
nil
|
2023-03-26 16:33:03 +00:00
|
|
|
|
nitrogen
|
2023-07-27 18:14:58 +00:00
|
|
|
|
nmap
|
2023-06-01 17:07:54 +00:00
|
|
|
|
obs-studio
|
2023-11-09 19:07:06 +00:00
|
|
|
|
unstable.obsidian
|
2023-03-26 16:33:03 +00:00
|
|
|
|
pfetch
|
2023-07-27 18:14:58 +00:00
|
|
|
|
polybar-spotify
|
2023-03-26 16:33:03 +00:00
|
|
|
|
pridefetch
|
2023-06-01 17:07:54 +00:00
|
|
|
|
prismlauncher
|
2023-03-26 16:33:03 +00:00
|
|
|
|
rofi-calc
|
|
|
|
|
rofimoji
|
2023-09-17 16:57:46 +00:00
|
|
|
|
speechd
|
2023-03-26 16:33:03 +00:00
|
|
|
|
tdesktop
|
|
|
|
|
wireguard-tools
|
|
|
|
|
xdg-utils
|
2023-03-27 15:21:43 +00:00
|
|
|
|
xdotool
|
2023-06-01 17:07:54 +00:00
|
|
|
|
yubioath-flutter
|
2023-03-26 16:33:03 +00:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
# Brightness/volume keys
|
|
|
|
|
users.users.agatha.extraGroups = [ "video" ];
|
2023-07-07 14:04:42 +00:00
|
|
|
|
|
|
|
|
|
location = {
|
|
|
|
|
latitude = 49.0;
|
|
|
|
|
longitude = 8.4;
|
|
|
|
|
};
|
|
|
|
|
services.redshift = {
|
|
|
|
|
enable = true;
|
|
|
|
|
brightness.night = "0.8";
|
|
|
|
|
};
|
2023-03-26 16:33:03 +00:00
|
|
|
|
|
|
|
|
|
services.xserver = {
|
|
|
|
|
enable = true;
|
|
|
|
|
displayManager = {
|
|
|
|
|
gdm.enable = true;
|
|
|
|
|
# gdm.wayland = true;
|
|
|
|
|
|
|
|
|
|
sessionPackages = [ pkgs.sway ];
|
|
|
|
|
session = [{
|
|
|
|
|
manage = "window";
|
|
|
|
|
name = "bspwm";
|
|
|
|
|
start = let cfg = config.home-manager.users.agatha;
|
|
|
|
|
in ''
|
|
|
|
|
${cfg.services.sxhkd.package}/bin/sxhkd ${
|
|
|
|
|
toString cfg.services.sxhkd.extraOptions
|
|
|
|
|
} &
|
|
|
|
|
${cfg.xsession.windowManager.bspwm.package}/bin/bspwm -c ${cfg.xdg.configHome}/bspwm/bspwmrc
|
|
|
|
|
'';
|
|
|
|
|
}];
|
|
|
|
|
};
|
|
|
|
|
# Layout overrides
|
|
|
|
|
layout = lib.mkForce "eu,de(qwerty),ua,ru";
|
|
|
|
|
xkbOptions = "ctrl:nocaps,compose:rctrl";
|
|
|
|
|
|
2023-06-01 17:07:54 +00:00
|
|
|
|
libinput.enable = true;
|
2023-03-26 16:33:03 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
home-manager.users.agatha = {
|
|
|
|
|
# Compose key sequences
|
|
|
|
|
home.file.".XCompose".text = ''
|
|
|
|
|
include "%L"
|
|
|
|
|
|
|
|
|
|
<Multi_key> <l> <f> : "( ͡° ͜ʖ ͡°)"
|
|
|
|
|
<Multi_key> <s> <f> : "¯\\_(ツ)_/¯"
|
|
|
|
|
<Multi_key> <g> <f> : "༼ つ ◕_◕ ༽つ"
|
|
|
|
|
<Multi_key> <B> <B> : "🅱️"
|
|
|
|
|
<Multi_key> <o> <asterisk> : "•"
|
|
|
|
|
<Multi_key> <h> <r> : "◆"
|
|
|
|
|
<Multi_key> <v> <v> : "✔"
|
|
|
|
|
<Multi_key> <v> <period> <v> : "✓"
|
|
|
|
|
<Multi_key> <space> <space> : ""
|
|
|
|
|
<Multi_key> <s> <0> : "§"
|
|
|
|
|
<Multi_key> <b><l> : "█"
|
|
|
|
|
<Multi_key> <h><s> : "☭"
|
|
|
|
|
<Multi_key> <s><r> : "√"
|
|
|
|
|
<Multi_key> <t><r> : "⚧️ trans rights uwu"
|
|
|
|
|
<Multi_key> <w><apostrophe> : "òwó"
|
|
|
|
|
<Multi_key> <W><apostrophe> : "ÒwÓ"
|
|
|
|
|
<Multi_key> <p><t> : "👉👈"
|
|
|
|
|
<Multi_key> <p><l> : "🥺"
|
|
|
|
|
<Multi_key> <m><s> : "/html <span data-mx-spoiler=\"\"></span>"
|
|
|
|
|
'';
|
|
|
|
|
|
2023-10-25 11:34:55 +00:00
|
|
|
|
# Fix for apps that expect fonts in the usual location
|
|
|
|
|
home.file.".local/share/fonts".source =
|
|
|
|
|
config.home-manager.users.agatha.lib.file.mkOutOfStoreSymlink
|
|
|
|
|
"/run/current-system/sw/share/X11/fonts";
|
|
|
|
|
|
2023-04-13 11:28:59 +00:00
|
|
|
|
programs.direnv.enable = true;
|
|
|
|
|
home.sessionVariables = { "DIRENV_LOG_FORMAT" = ""; };
|
2023-07-07 14:04:42 +00:00
|
|
|
|
|
|
|
|
|
programs.ssh.enable = true;
|
|
|
|
|
programs.ssh.matchBlocks = {
|
|
|
|
|
"bloodletting" = { hostname = "technogothic.net"; };
|
|
|
|
|
|
|
|
|
|
"backups" = {
|
|
|
|
|
match = ''originalhost backups exec "ip r | rg 10.42.0.0/24"'';
|
|
|
|
|
hostname = "10.20.1.2";
|
|
|
|
|
user = "agatha";
|
|
|
|
|
identityFile = [ "~/.ssh/id_ed25519" ];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"work" = {
|
|
|
|
|
match = ''originalhost work exec "ip r | rg 10.42.0.0/24"'';
|
|
|
|
|
hostname = "10.42.0.222";
|
|
|
|
|
forwardX11 = true;
|
|
|
|
|
forwardX11Trusted = true;
|
2023-07-27 18:14:58 +00:00
|
|
|
|
forwardAgent = true;
|
|
|
|
|
remoteForwards = [{
|
|
|
|
|
bind.address = "/run/user/1000/gnupg/S.gpg-agent";
|
|
|
|
|
host.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
|
|
|
|
|
}];
|
2023-07-07 14:04:42 +00:00
|
|
|
|
extraOptions."TCPKeepAlive" = "yes";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
"ritual" = {
|
|
|
|
|
match = ''originalhost ritual exec "ip r | rg 10.42.0.0/24"'';
|
2023-07-27 18:14:58 +00:00
|
|
|
|
hostname = "10.42.0.104";
|
2023-07-07 14:04:42 +00:00
|
|
|
|
};
|
|
|
|
|
};
|
2023-09-14 14:25:34 +00:00
|
|
|
|
|
|
|
|
|
xdg.desktopEntries.element-work = {
|
|
|
|
|
name = "Element @ Work";
|
|
|
|
|
icon = "im.riot.Riot";
|
2023-09-17 16:57:46 +00:00
|
|
|
|
exec = "${pkgs.element-desktop}/bin/element-desktop --profile=work";
|
2023-09-14 14:25:34 +00:00
|
|
|
|
categories = [ "Network" "InstantMessaging" "Chat" "VideoConference" ];
|
|
|
|
|
mimeType = [ "x-scheme-handler/element" ];
|
|
|
|
|
settings.StartupWMClass = "element";
|
|
|
|
|
settings.Keywords =
|
|
|
|
|
"Matrix;matrix.org;chat;irc;communications;talk;riot;vector;";
|
|
|
|
|
};
|
2023-03-26 16:33:03 +00:00
|
|
|
|
};
|
|
|
|
|
|
2023-03-27 15:21:43 +00:00
|
|
|
|
services.gvfs.enable = true;
|
2023-03-26 16:33:03 +00:00
|
|
|
|
security.polkit.enable = true;
|
2023-04-13 11:28:59 +00:00
|
|
|
|
programs.dconf.enable = true;
|
2023-03-26 16:33:03 +00:00
|
|
|
|
|
2023-04-07 16:20:16 +00:00
|
|
|
|
programs.geary.enable = true;
|
2023-04-13 11:28:59 +00:00
|
|
|
|
programs.steam.enable = true;
|
|
|
|
|
|
|
|
|
|
programs.firefox = {
|
|
|
|
|
enable = true;
|
|
|
|
|
autoConfig = ''
|
|
|
|
|
pref("privacy.webrtc.legacyGlobalIndicator", false);
|
|
|
|
|
pref("privacy.webrtc.hideGlobalIndicator", true);
|
|
|
|
|
'';
|
|
|
|
|
};
|
2023-04-07 16:20:16 +00:00
|
|
|
|
|
2023-03-26 16:33:03 +00:00
|
|
|
|
# Screenshare on wlroots
|
|
|
|
|
xdg = {
|
|
|
|
|
portal = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extraPortals = with pkgs; [
|
|
|
|
|
xdg-desktop-portal-wlr
|
|
|
|
|
xdg-desktop-portal-gtk
|
|
|
|
|
];
|
|
|
|
|
wlr.enable = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
fonts.fontconfig.enable = true;
|
2023-04-19 08:24:08 +00:00
|
|
|
|
fonts.fontDir.enable = true;
|
2023-03-26 16:33:03 +00:00
|
|
|
|
fonts.fonts = with pkgs; [
|
2023-04-02 10:53:12 +00:00
|
|
|
|
(nerdfonts.override { fonts = [ "DaddyTimeMono" "NerdFontsSymbolsOnly" ]; })
|
2023-03-26 16:33:03 +00:00
|
|
|
|
cantarell-fonts
|
2023-04-02 10:53:12 +00:00
|
|
|
|
cm_unicode
|
2023-06-19 17:16:14 +00:00
|
|
|
|
corefonts
|
2023-03-26 16:33:03 +00:00
|
|
|
|
crimson
|
|
|
|
|
dejavu_fonts
|
|
|
|
|
fira-code
|
|
|
|
|
fira-code-symbols
|
|
|
|
|
font-awesome_5
|
|
|
|
|
iosevka
|
|
|
|
|
noto-fonts-cjk
|
|
|
|
|
siji
|
|
|
|
|
twitter-color-emoji
|
|
|
|
|
];
|
|
|
|
|
|
2023-07-27 18:14:58 +00:00
|
|
|
|
services.printing = {
|
|
|
|
|
enable = true;
|
|
|
|
|
drivers = [ pkgs.hplip ];
|
|
|
|
|
};
|
2023-09-17 16:57:46 +00:00
|
|
|
|
|
2023-09-29 13:11:40 +00:00
|
|
|
|
hardware.bluetooth = {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = { General = { Disable = "Headset"; }; };
|
|
|
|
|
};
|
|
|
|
|
|
2023-09-17 16:57:46 +00:00
|
|
|
|
# Fix Wireguard NetworkManager connections
|
|
|
|
|
networking.firewall.checkReversePath = "loose";
|
2023-03-26 16:33:03 +00:00
|
|
|
|
}
|