208 lines
4.4 KiB
Nix
208 lines
4.4 KiB
Nix
{ config, pkgs, lib, inputs, osConfig, ... }: {
|
|
imports = [
|
|
./controller.nix
|
|
./waybar
|
|
./helix.nix
|
|
./kakoune
|
|
./vscode
|
|
./fish
|
|
./firefox.nix
|
|
./hyprland.nix
|
|
./alacritty.nix
|
|
./git.nix
|
|
./ssh.nix
|
|
./qutebrowser
|
|
./gpg.nix
|
|
./rofi.nix
|
|
./mpv.nix
|
|
./mangohud.nix
|
|
./pipewire.nix
|
|
./mimeapps.nix
|
|
./desktop-entries.nix
|
|
./chat.nix
|
|
./syncthing.nix
|
|
./vdir.nix
|
|
./bmenu.nix
|
|
./fzf.nix
|
|
./ranger
|
|
./lf
|
|
./pass.nix
|
|
./pqiv.nix
|
|
./zathura.nix
|
|
./man.nix
|
|
./mpd.nix
|
|
./sway
|
|
./gnome.nix
|
|
./thunar.nix
|
|
./xdg-dirs.nix
|
|
inputs.hyprland.homeManagerModules.default
|
|
inputs.nix-index-database.hmModules.nix-index
|
|
];
|
|
|
|
# Home Manager needs a bit of information about you and the
|
|
# paths it should manage.
|
|
home.username = "lelgenio";
|
|
home.homeDirectory = "/home/lelgenio";
|
|
|
|
# Let Home Manager install and manage itself.
|
|
# programs.home-manager.enable = true;
|
|
home.packages = with pkgs; [
|
|
# home-manager
|
|
|
|
terminal # see flake.nix
|
|
|
|
pulse_sink
|
|
pulseaudio
|
|
|
|
## CLI
|
|
eza
|
|
fd
|
|
gavin-bc
|
|
file
|
|
jq
|
|
du-dust
|
|
p7zip
|
|
tealdeer
|
|
micro
|
|
_diffr
|
|
br # bulk rename
|
|
|
|
comma
|
|
|
|
# System monitors
|
|
(btop.override {
|
|
cudaSupport = true;
|
|
})
|
|
amdgpu_top
|
|
inxi
|
|
dmidecode
|
|
ncdu
|
|
|
|
## text manipulation
|
|
sd
|
|
ripgrep
|
|
translate-shell
|
|
lipsum
|
|
par
|
|
|
|
mate.engrampa
|
|
# gnome.nautilus
|
|
|
|
## games
|
|
# lutris-unwrapped
|
|
# steam # It's enabled in the system config
|
|
tlauncher
|
|
gamescope
|
|
glxinfo
|
|
vulkan-tools
|
|
|
|
## Theming
|
|
orchis_theme_compact
|
|
papirus_red
|
|
libsForQt5.qtstyleplugins
|
|
qt5.qtsvg
|
|
|
|
## Network
|
|
speedtest-cli
|
|
nmap
|
|
httpie
|
|
miniupnpc
|
|
deluge
|
|
nicotine-plus
|
|
|
|
## Nix secrets management
|
|
inputs.agenix.packages.x86_64-linux.default
|
|
|
|
## Programming
|
|
# rustup
|
|
|
|
docker-compose
|
|
gnumake
|
|
mariadb
|
|
|
|
nodePackages.intelephense
|
|
nodePackages.typescript-language-server
|
|
flow # js lsp server
|
|
nil # nix lsp server
|
|
clang-tools # c/c++ lsp server
|
|
rust-analyzer # rust analyzer
|
|
|
|
blade-formatter
|
|
nixpkgs-fmt
|
|
];
|
|
|
|
fonts.fontconfig.enable = true;
|
|
|
|
home.file = {
|
|
".local/share/backgrounds" = {
|
|
source = ./backgrounds;
|
|
recursive = true;
|
|
};
|
|
};
|
|
home.sessionVariables = {
|
|
VOLUME_CHANGE_SOUND =
|
|
"${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga";
|
|
};
|
|
programs.bash = { enable = true; };
|
|
|
|
services.nextcloud-client = {
|
|
enable = true;
|
|
startInBackground = true;
|
|
};
|
|
|
|
xdg.defaultApplications = {
|
|
enable = true;
|
|
text-editor = lib.mkDefault "kak.desktop";
|
|
image-viewer = lib.mkDefault "pqiv.desktop";
|
|
video-player = lib.mkDefault "mpv.desktop";
|
|
web-browser = lib.mkDefault (
|
|
{
|
|
firefox = lib.mkDefault "firefox.desktop";
|
|
qutebrowser = lib.mkDefault "org.qutebrowser.qutebrowser.desktop";
|
|
}.${pkgs.uservars.browser}
|
|
);
|
|
document-viewer = lib.mkDefault "org.pwmt.zathura.desktop";
|
|
file-manager = lib.mkDefault "thunar.desktop";
|
|
archive-manager = "engrampa.desktop";
|
|
email-client = lib.mkDefault "thunderbird.desktop";
|
|
torrent-client = lib.mkDefault "torrent.desktop";
|
|
};
|
|
|
|
wayland.windowManager.sway.extraConfig = lib.optionalString (osConfig.networking.hostName or "" == "monolith") ''
|
|
exec steam
|
|
exec obs --startreplaybuffer --disable-shutdown-check
|
|
exec deluge-gtk
|
|
exec nicotine
|
|
'';
|
|
|
|
systemd.user.services.rm-target = {
|
|
Unit = {
|
|
Description = "Remove directories named 'target'";
|
|
};
|
|
Service = {
|
|
Type = "oneshot";
|
|
ExecStart = pkgs.writeShellScript "rm-target" ''
|
|
sudo ${pkgs.fd}/bin/fd -td -u '^\.?target$' "$HOME" -x rm -vrf --
|
|
'';
|
|
};
|
|
};
|
|
systemd.user.timers.rm-target = {
|
|
Unit = { Description = "Remove directories named 'target'"; };
|
|
Timer = {
|
|
OnCalendar = "weekly";
|
|
Unit = "rm-target.service";
|
|
};
|
|
Install = { WantedBy = [ "timers.target" ]; };
|
|
};
|
|
|
|
# This value determines the Home Manager release that your
|
|
# configuration is compatible with. This helps avoid breakage
|
|
# when a new Home Manager release introduces backwards
|
|
# incompatible changes.
|
|
#
|
|
# You can update Home Manager without changing this value. See
|
|
# the Home Manager release notes for a list of state version
|
|
# changes in each release.
|
|
home.stateVersion = "22.05";
|
|
}
|