nix-infra/common/fragments/graphical/default.nix

197 lines
4.5 KiB
Nix
Raw Normal View History

2023-03-26 16:33:03 +00:00
{ pkgs, config, lib, ... }: {
imports = [
./bspwm.nix
./picom.nix
./audio.nix
2023-03-26 16:33:03 +00:00
./polybar.nix
2023-03-27 15:21:43 +00:00
./dunst.nix
2023-04-07 16:20:16 +00:00
./rofi.nix
2023-03-26 16:33:03 +00:00
./iosevka.nix
./kitty.nix
./element.nix
2023-04-07 16:20:16 +00:00
./url-eater.nix
2023-03-26 16:33:03 +00:00
];
# User packages
users.users.agatha.packages = with pkgs; [
brightnessctl
broot
colmena
element-desktop
flameshot
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
lxappearance
magic-wormhole
neofetch
nitrogen
pfetch
pridefetch
rofi-calc
rofimoji
tdesktop
wireguard-tools
xdg-utils
yubioath-desktop
2023-03-27 15:21:43 +00:00
clipmenu
xdotool
2023-04-02 10:53:12 +00:00
prismlauncher
2023-04-07 16:20:16 +00:00
obs-studio
2023-03-26 16:33:03 +00:00
];
# Brightness/volume keys
users.users.agatha.extraGroups = [ "video" ];
programs.light.enable = true;
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";
synaptics = {
enable = true;
tapButtons = true;
vertTwoFingerScroll = true;
vertEdgeScroll = true;
horizEdgeScroll = true;
horizTwoFingerScroll = true;
palmDetect = true;
palmMinWidth = 8;
palmMinZ = 100;
};
};
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>"
'';
# Cursor theme
home.pointerCursor = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = 24;
x11 = {
enable = true;
defaultCursor = "Adwaita";
};
};
2023-04-07 16:20:16 +00:00
# Lockscreen
services.betterlockscreen = {
enable = true;
arguments = [ "dimblur" ];
};
# GTK theme
home.file.".themes" = {
recursive = true;
source = pkgs.fetchgit {
url = "https://github.com/ZorinOS/zorin-desktop-themes.git";
rev = "6708d5148545c6d9a99712f63b5efe5a5c0eb2d9";
sha256 = "sha256-4wLkBIAPX1UfYxfKeNx9DhCNDwbZ25ezp/d+GGQTECc=";
sparseCheckout = [ "ZorinPurple-Dark" ];
};
};
programs.direnv.enable = true;
home.sessionVariables = { "DIRENV_LOG_FORMAT" = ""; };
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;
programs.dconf.enable = true;
2023-03-26 16:33:03 +00:00
2023-04-07 16:20:16 +00:00
programs.geary.enable = true;
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-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
];
services.printing.enable = true;
}