helm/hosts/profiles/desktop/default.nix

225 lines
5.6 KiB
Nix
Raw Normal View History

2022-12-06 20:38:29 -08:00
{ self, config, pkgs, lib, ... }:
2022-09-18 15:13:50 -07:00
let
tex = (pkgs.texlive.combine {
2024-11-27 23:19:50 -08:00
inherit (pkgs.texlive)
scheme-basic dvisvgm dvipng # for preview and export as html
wrapfig amsmath ulem hyperref capt-of;
#(setq org-latex-compiler "lualatex")
#(setq org-preview-latex-default-process 'dvisvgm)
});
2022-09-18 15:13:50 -07:00
dracula-gtk = pkgs.fetchFromGitHub {
owner = "dracula";
repo = "gtk";
rev = "502f212d83bc67e8f0499574546b99ec6c8e16f9";
sha256 = "1wx9nzq7cqyvpaq4j60bs8g7gh4jk8qg4016yi4c331l4iw1ymsa";
};
2024-11-27 23:19:50 -08:00
in {
2022-09-18 15:13:50 -07:00
# TODO modularize
2024-11-27 23:19:50 -08:00
imports = [ ./battery-low-timer.nix ./cal-alarms.nix ];
2022-09-18 15:13:50 -07:00
2022-12-06 19:18:40 -08:00
# Secrets used by home-manager modules
age.secrets.fastmail.file = "${self}/secrets/fastmail.age";
age.secrets.fastmail.owner = "anish";
age.secrets.mossnet.file = "${self}/secrets/mossnet.age";
age.secrets.mossnet.owner = "anish";
# Taskwarrior private key
2024-11-27 23:19:50 -08:00
age.secrets.taskwarrior-private.file =
"${self}/secrets/taskwarrior-private.age";
age.secrets.taskwarrior-private.owner = "anish";
# We don't plug USBs into servers
services.devmon.enable = true;
2022-09-18 15:13:50 -07:00
services = {
gnome.gnome-keyring.enable = true;
upower.enable = true;
dbus = {
enable = true;
packages = [ pkgs.dconf ];
};
};
2023-08-12 18:57:16 -07:00
programs.dconf.enable = true;
2022-09-18 15:13:50 -07:00
2022-10-03 06:59:21 -07:00
security.pam.services.Default.enableGnomeKeyring = true;
security.pam.services.Login.enableGnomeKeyring = true;
2022-09-18 15:13:50 -07:00
security.pam.services.sddm.enableGnomeKeyring = true;
environment.sessionVariables = rec {
XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_BIN_HOME = "\${HOME}/.local/bin";
XDG_DATA_HOME = "\${HOME}/.local/share";
2024-11-27 23:19:50 -08:00
PATH = [ "\${XDG_BIN_HOME}" ];
2022-09-18 15:13:50 -07:00
};
environment.systemPackages = with pkgs; [
2024-07-14 18:48:44 -07:00
#unstable.sublime-music
2024-11-27 23:19:50 -08:00
# olm-3.2.16 is now insecure
# some reason I can't set insecure packages that will be respected
nheko
2023-11-05 01:33:03 -07:00
unstable.signal-desktop
2023-08-12 18:57:16 -07:00
unstable.tuba
2023-04-26 23:14:11 -07:00
unstable.newsflash
unstable.liferea
2023-10-24 15:16:58 -07:00
unstable.gh
2024-01-05 23:44:08 -08:00
unstable.flyctl
2022-12-06 19:18:40 -08:00
2023-10-24 15:16:58 -07:00
kooha
2023-08-21 18:03:33 -07:00
light
xfce.orage
2022-09-18 15:13:50 -07:00
feh
sxiv
xkblayout-state
zathura
calibre
mpv
zeal
xclip
xdotool
rofi
rofimoji
rofi-calc
obs-studio
lightdm
dunst
libnotify
(polybar.override {
2022-12-19 21:50:50 -08:00
pulseSupport = true;
2022-09-18 15:13:50 -07:00
nlSupport = true;
})
papirus-icon-theme
calendar-cli
wyrd
2024-03-15 23:25:49 -07:00
# tic-80
2022-12-26 20:24:48 -08:00
ytfzf
yt-dlp
2022-09-18 15:13:50 -07:00
];
2023-10-24 15:16:58 -07:00
xdg.portal = {
# Breaks link clicking in nheko
# Portal doesn't seem to find Firefox as an acceptable app to open links?
enable = false;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
xdgOpenUsePortal = false;
};
2022-09-18 15:13:50 -07:00
location.provider = "geoclue2";
services = {
redshift = {
enable = true;
temperature = {
day = 5500;
night = 3700;
};
};
2024-08-19 21:29:41 -07:00
displayManager.defaultSession = "none+bspwm";
2022-09-18 15:13:50 -07:00
xserver = {
enable = true;
2024-03-15 23:25:49 -07:00
# TODO should be xkb.layout
2024-08-19 21:29:41 -07:00
xkb.layout = "us";
2024-03-15 23:25:49 -07:00
# xkb.variant = "dvorak";
2022-09-18 15:13:50 -07:00
desktopManager.wallpaper.mode = "fill";
displayManager = {
2024-03-15 23:25:49 -07:00
# startx.enable = true;
2022-09-18 15:13:50 -07:00
sessionCommands = ''
${pkgs.xorg.xrdb}/bin/xrdb -merge <<EOF
#define blk #1F2430
#define bblk #F28779
#define red #A6CC70
#define bred #FFCC66
#define grn #5CCFE6
#define bgrn #F29E74
#define ylw #77A8D9
#define bylw #5C6773
#define blu #707A8C
#define bblu #F27983
#define mag #BAE67E
#define bmag #FFD580
#define cyn #73D0FF
#define bcyn #FFA759
#define wht #95E6CB
#define bwht #CBCCC6
#define bg blk
#define fg wht
2024-11-27 23:19:50 -08:00
2022-09-18 15:13:50 -07:00
*.foreground: fg
*.background: bg
*.cursorColor: mag
2024-11-27 23:19:50 -08:00
2022-09-18 15:13:50 -07:00
*.color0: blk
*.color8: bblk
*.color1: red
*.color9: bred
*.color2: grn
*.color10: bgrn
*.color3: ylw
*.color11: bylw
*.color4: blu
*.color12: bblu
*.color5: mag
*.color13: bmag
*.color6: cyn
*.color14: bcyn
*.color7: wht
*.color15: bwht
2024-11-27 23:19:50 -08:00
2022-09-18 15:13:50 -07:00
! greys
*.color234: #1E2029
*.color235: #282a36
*.color236: #373844
*.color237: #44475a
*.color239: #565761
*.color240: #6272a4
*.color241: #b6b6b2
2023-01-12 20:58:11 -08:00
# hotplug
connect() {
# Turn it on if it was off
xrandr --output HDMI-2 --auto
xrandr --output HDMI-2 --same-as eDP-1
}
disconnect() {
xrandr --output HDMI-2 --off
}
xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect
2022-09-18 15:13:50 -07:00
EOF
'';
2022-10-19 04:11:13 -07:00
lightdm = {
enable = true;
background = "/etc/nixos/users/profiles/desktop/background.jpg";
2023-02-05 05:54:48 -08:00
greeters.mini = {
enable = true;
user = "anish";
extraConfig = ''
text-color = "#ff79c6"
password-background-color = "#1E2029"
window-color = "#181a23"
border-color = "#181a23"
'';
};
2022-10-19 04:11:13 -07:00
};
2022-09-18 15:13:50 -07:00
};
windowManager.bspwm.enable = true;
2023-04-12 20:57:05 -07:00
#windowManager.bspwm.configFile = "/home/anish/.bspwm/bspwmrc";
2022-09-18 15:13:50 -07:00
windowManager.bspwm.sxhkd.configFile = "/home/anish/.config/sxhkdrc";
};
};
2024-01-05 23:44:08 -08:00
fonts.packages = with pkgs; [
2022-09-18 15:13:50 -07:00
fira-code
fira-code-symbols
hermit
#hack
siji
font-awesome
proggyfonts
(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; })
];
}