nix-dotfiles/home.nix
vorboyvo 4fd19a9ba2 Refactored packages slightly to add let-ins instead of clogging up the space
there.
Also moved around some categories.
Installed texlab as an LSP for LaTeX.
Installed Haskell and tools.
Installed fonts rubik and archivo, the latter creating a flake and derivation
for it.
Added a desktop entry for kakoune.
Added a GeoGuessr Join search tool for Firefox.
Changed background to kuwait boat image; kept bord around.
Added dunst notifications toggle key but I don't think it works yet.
Disabled scroll to change volume in waybar volume module.
2024-03-19 23:07:41 -04:00

160 lines
4.8 KiB
Nix

{ config, lib, pkgs, ... }:
let
scripts = ./scripts;
extra = ./extra;
terminal = pkgs.alacritty;
in
{
home.username = "alice";
home.homeDirectory = "/home/alice";
home.stateVersion = "23.11";
# Configure cursor
home.pointerCursor = {
package = pkgs.vanilla-dmz;
name = "Vanilla-DMZ";
size = 256;
};
# Configure icon theme
gtk = {
enable = true;
iconTheme = {
name = "Papirus";
package = pkgs.papirus-icon-theme;
};
};
# Install packages
home.packages =
with pkgs;
let
xdg-terminal-exec = callPackage ./pkgs/xdg-terminal-exec/xdg-terminal-exec.nix {};
mons = callPackage ./pkgs/mons/mons.nix {};
archivo = callPackage ./pkgs/archivo/archivo.nix {};
in
[ gcc tree-sitter ] ++ # Basic dev tools
[ marksman nil ] ++ # Language servers except those installed through package sections
[ texliveFull texlab ] ++ # LaTeX
(with ocamlPackages; [ ocaml opam dune_3 dune-release merlin ocaml-lsp odoc ocamlformat utop ]) ++ # OCaml
[ ghc stack cabal-install haskell-language-server ] ++ # Haskell
[ python3 ] ++ # I guess.....
[ julia ] ++ # Julia
[ kak-lsp brightnessctl grim slurp wl-clipboard jq xdg-terminal-exec blueman ] ++ # Basic utilities
[ bitwarden-cli htop snore ] ++ # Personalized selection of command-line (CLI/TUI) apps
[ terminal ] ++ # Terminal emulator
[ firefox cinnamon.nemo gnome.file-roller cinnamon.nemo-fileroller evince imv vlc pavucontrol ] ++ # Basic graphical apps
[ libreoffice signal-desktop element-desktop prismlauncher mumble gimp inkscape deluge-gtk shotwell lorien ] ++ # Personalized selection of graphical apps
[ mons ] ++ # Games
[ swaybg bemenu j4-dmenu-desktop fcitx5-with-addons ] ++ # Sway- and Wayland-related packages
[ noto-fonts redhat-official-fonts overpass ibm-plex rubik archivo font-awesome ] ++ # Fonts
# [ papirus-icon-theme ] ++ # Icons
# [ vanilla-dmz ] ++ # Cursor
[ ] ++ # Temp
[ ];
programs.home-manager.enable = true;
# Enabling bash from home-manager means environment variables set by HM get set correctly
programs.bash = {
enable = true;
profileExtra = ''
export VISUAL=nvim
# Enable fcitx for sway
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
# If running from tty1 start sway
[ "$(tty)" = "/dev/tty1" ] && exec sway
'';
};
programs.git = {
enable = true;
userName = "vorboyvo";
userEmail = "mrsirofvibe@outlook.com";
extraConfig = { init.defaultBranch = "main"; };
};
wayland.windowManager.sway = import ./programs/sway.nix { inherit scripts extra config lib pkgs terminal; };
programs.waybar = import ./programs/waybar.nix { inherit scripts config lib pkgs terminal; };
programs.swaylock = {
enable = true;
settings = {
font-size = 14;
};
};
services.swayidle = {
enable = true;
events = [
{ event = "before-sleep"; command = "${pkgs.lib.getExe pkgs.swaylock} -f"; }
];
};
# programs.waybar = import ./wayland/waybar.nix { inherit config lib pkgs; };
# configure fonts correctly
fonts.fontconfig.enable = true;
xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source = "${extra}/20-default-fonts.conf";
# fix nemo terminal integration
dconf.settings."org/cinnamon/desktop/applications/terminal".exec = "${pkgs.lib.getExe terminal}" ;
# dconf.settings."org/cinnamon/desktop/applications/terminal".exec-arg = "-e --cwd %F";
# terminal emulator
programs.alacritty.enable = true;
programs.neovim = import ./programs/neovim.nix;
# trying out kakoune
programs.kakoune = import ./programs/kakoune.nix;
xdg.configFile."kak-lsp/kak-lsp.toml".source = ./programs/kakoune/kak-lsp.toml;
xdg.desktopEntries.kakoune = {
name = "Kakoune";
genericName = "Text Editor";
comment = "Edit text files";
icon = "kak";
exec = "kak %F";
terminal = true;
mimeType = [
"text/english" "text/plain" "text/x-makefile" "text/x-c++hdr"
"text/x-c++src" "text/x-chdr" "text/x-csrc" "text/x-java"
"text/x-moc" "text/x-pascal" "text/x-tcl" "text/x-tex"
"application/x-shellscript" "text/x-c" "text/x-c++"
];
categories = ["Utility" "TextEditor"];
};
# programs.zathura = {
# enable = true;
# };
programs.pandoc = {
enable = true;
};
# Configure notifications
services.dunst = {
enable = true;
settings = {
global = {
font = "Red Hat Display 12";
mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_all";
mouse_right_click = "close_current";
};
};
};
services.batsignal = {
enable = true;
};
programs.firefox = import ./programs/firefox.nix {inherit pkgs;};
programs.thunderbird = import ./programs/thunderbird.nix;
}