211 lines
4.3 KiB
Nix
211 lines
4.3 KiB
Nix
{ config, pkgs, lib, inputs, ... }:
|
|
let inherit (import ./variables.nix) desktop;
|
|
in {
|
|
imports = [
|
|
./controller.nix
|
|
./waybar.nix
|
|
./helix.nix
|
|
./kakoune.nix
|
|
./fish.nix
|
|
./firefox.nix
|
|
./hyprland.nix
|
|
./alacritty.nix
|
|
./git.nix
|
|
./qutebrowser
|
|
./gpg.nix
|
|
./rofi.nix
|
|
./mpv.nix
|
|
./mangohud.nix
|
|
./rnnoise.nix
|
|
./mimeapps.nix
|
|
./chat.nix
|
|
./syncthing.nix
|
|
./bmenu.nix
|
|
./fzf.nix
|
|
./ranger
|
|
./lf
|
|
./pass.nix
|
|
./zathura.nix
|
|
./man.nix
|
|
./gnome.nix
|
|
./theme.nix
|
|
inputs.hyprland.homeManagerModules.default
|
|
] ++ lib.optional (desktop == "sway") ./sway.nix;
|
|
|
|
# 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; [
|
|
terminal # see flake.nix
|
|
|
|
pulse_sink
|
|
pulseaudio
|
|
|
|
## CLI
|
|
btop
|
|
exa
|
|
fd
|
|
bc
|
|
du-dust
|
|
p7zip
|
|
tealdeer
|
|
micro
|
|
_diffr
|
|
br # bulk rename
|
|
|
|
## text manipulation
|
|
sd
|
|
ripgrep
|
|
translate-shell
|
|
|
|
(xfce.thunar.override {
|
|
thunarPlugins = with pkgs.xfce; [ thunar-volman thunar-archive-plugin ];
|
|
})
|
|
mate.engrampa
|
|
# gnome.nautilus
|
|
|
|
## games
|
|
# lutris-unwrapped
|
|
# steam # It's enabled in the system config
|
|
|
|
## chat
|
|
thunderbird
|
|
|
|
## Theming
|
|
orchis_theme_compact
|
|
papirus_red
|
|
libsForQt5.qtstyleplugins
|
|
qt5.qtsvg
|
|
|
|
## Network
|
|
speedtest-cli
|
|
nmap
|
|
httpie
|
|
miniupnpc
|
|
deluge
|
|
|
|
## Nix secrets management
|
|
inputs.agenix.defaultPackage.x86_64-linux
|
|
|
|
## Programming
|
|
vscode
|
|
rustup
|
|
|
|
docker-compose
|
|
gnumake
|
|
mariadb
|
|
# php74
|
|
nodePackages.intelephense
|
|
nodePackages.typescript-language-server
|
|
nodejs
|
|
nodePackages.yarn
|
|
nodePackages.less
|
|
nodePackages.sass
|
|
nodePackages.less-plugin-clean-css
|
|
nodePackages.uglify-js
|
|
|
|
meson
|
|
ninja
|
|
|
|
flow # js lsp server
|
|
nil-lsp # nix lsp server
|
|
clang-tools # c/c++ lsp server
|
|
|
|
# cargo
|
|
cargo-edit
|
|
cargo-feature
|
|
cargo-watch
|
|
cargo-expand
|
|
cargo-sweep
|
|
pkgs.unstable.rust-analyzer
|
|
gcc
|
|
rnix-lsp
|
|
nixfmt
|
|
|
|
trunk
|
|
wasm-bindgen-cli
|
|
sea-orm-cli
|
|
sqlx-cli
|
|
];
|
|
|
|
home.sessionVariables = {
|
|
VOLUME_CHANGE_SOUND =
|
|
"${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga";
|
|
};
|
|
programs.bash = { enable = true; };
|
|
|
|
xdg.configFile = {
|
|
"thunar/".source = ./thunar;
|
|
};
|
|
|
|
xdg.userDirs = let
|
|
HOME = config.home.homeDirectory;
|
|
in {
|
|
enable = true;
|
|
createDirectories = true;
|
|
|
|
desktop = "${HOME}/Área de trabalho";
|
|
documents = "${HOME}/Documentos";
|
|
download = "${HOME}/Downloads";
|
|
music = "${HOME}/Música";
|
|
pictures = "${HOME}/Imagens";
|
|
publicShare = "${HOME}/Público";
|
|
templates = "${HOME}/Modelos";
|
|
videos = "${HOME}/Vídeos";
|
|
};
|
|
|
|
systemd.user.services = {
|
|
steam = {
|
|
Unit = {
|
|
Description = "Steam client";
|
|
PartOf = [ "graphical-session.target" ];
|
|
After = [ "graphical-session.target" ];
|
|
};
|
|
Service = {
|
|
ExecStartPre = "/usr/bin/env sleep 20s";
|
|
ExecStart = "${pkgs.steam}/bin/steam";
|
|
Restart = "on-failure";
|
|
};
|
|
Install = { WantedBy = [ "sway-session.target" ]; };
|
|
};
|
|
};
|
|
|
|
services.kdeconnect = {
|
|
enable = true;
|
|
indicator = true;
|
|
};
|
|
services.mpd = {
|
|
enable = true;
|
|
musicDirectory = config.home.homeDirectory + "/Música";
|
|
extraConfig = ''
|
|
restore_paused "yes"
|
|
auto_update "yes"
|
|
audio_output {
|
|
type "pulse"
|
|
name "My Pulse Output"
|
|
mixer_type "hardware"
|
|
}
|
|
filesystem_charset "UTF-8"
|
|
'';
|
|
};
|
|
services.mpdris2 = {
|
|
enable = true;
|
|
multimediaKeys = true;
|
|
notifications = true;
|
|
};
|
|
|
|
# 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";
|
|
}
|