nixos-config/user/home.nix

249 lines
5.6 KiB
Nix
Raw Normal View History

2022-08-30 22:01:06 -03:00
{ config, pkgs, lib, inputs, ... }:
let inherit (import ./variables.nix) key theme color accent font;
2022-08-04 23:46:59 -03:00
2022-07-20 22:14:36 -03:00
in {
2022-08-07 23:58:05 -03:00
imports = [
./waybar.nix
./helix.nix
./kakoune.nix
2022-08-23 23:42:36 -03:00
./fish.nix
2022-10-18 22:41:40 -03:00
./firefox.nix
2022-08-07 23:58:05 -03:00
./sway.nix
2022-08-20 17:46:03 -03:00
./hyprland.nix
2022-09-16 23:50:28 -03:00
./alacritty.nix
2022-08-07 23:58:05 -03:00
./git.nix
./qutebrowser
2022-08-08 21:16:45 -03:00
./gpg.nix
2022-08-12 23:35:42 -03:00
./rofi.nix
2022-10-18 22:41:40 -03:00
./mpv.nix
./mangohud.nix
2022-08-13 14:25:32 -03:00
./rnnoise.nix
2022-10-18 23:30:35 -03:00
./mimeapps.nix
2022-08-20 17:46:03 -03:00
inputs.hyprland.homeManagerModules.default
2022-08-07 23:58:05 -03:00
];
2022-06-05 01:43:16 -03:00
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "lelgenio";
home.homeDirectory = "/home/lelgenio";
2022-10-18 22:41:40 -03:00
2022-06-05 01:43:16 -03:00
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.packages = with pkgs; [
2022-08-06 11:10:31 -03:00
terminal # see flake.nix
2022-10-18 22:41:40 -03:00
2022-10-21 20:21:51 -03:00
pulse_sink
pulseaudio
2022-10-18 22:41:40 -03:00
## CLI
2022-10-04 11:56:29 -03:00
btop
2022-06-05 01:43:16 -03:00
exa
fd
2022-10-18 22:41:40 -03:00
bc
du-dust
2022-08-22 12:48:03 -03:00
p7zip
2022-10-17 00:18:10 -03:00
tealdeer
2022-10-18 22:41:40 -03:00
micro
2022-08-05 21:09:52 -03:00
_diffr
2022-08-09 09:57:54 -03:00
br # bulk rename
2022-10-18 22:41:40 -03:00
## text manipulation
2022-07-20 20:07:58 -03:00
sd
2022-06-05 01:43:16 -03:00
ripgrep
2022-08-27 16:14:40 -03:00
translate-shell
2022-10-18 22:41:40 -03:00
2022-10-18 23:30:35 -03:00
xfce.thunar
# gnome.nautilus
2022-07-20 22:44:41 -03:00
pass
2022-08-08 20:05:06 -03:00
wpass
2022-08-08 21:16:45 -03:00
_gpg-unlock
2022-10-18 22:41:40 -03:00
## games
2022-10-17 00:18:10 -03:00
# lutris-unwrapped
2022-10-18 22:41:40 -03:00
# steam # It's enabled in the system config
## chat
2022-07-20 20:07:58 -03:00
tdesktop
2022-08-03 11:56:30 -03:00
thunderbird
2022-10-18 22:41:40 -03:00
# discord # I'm using webcord, see home.activation
## Theming
2022-07-20 22:14:36 -03:00
orchis_theme_compact
papirus_red
2022-07-21 00:29:12 -03:00
libsForQt5.qtstyleplugins
qt5.qtsvg
2022-10-18 22:41:40 -03:00
2022-07-20 22:14:36 -03:00
## fonts
2022-06-13 10:34:47 -03:00
liberation_ttf
hack-font
font-awesome_5
fira-code
2022-07-21 00:32:09 -03:00
nerdfonts_fira_hack
2022-08-11 11:53:39 -03:00
material-wifi-icons
2022-10-18 22:41:40 -03:00
2022-10-17 00:18:10 -03:00
## Network
2022-10-18 22:41:40 -03:00
speedtest-cli
2022-10-17 00:18:10 -03:00
nmap
miniupnpc
2022-10-18 22:41:40 -03:00
deluge
## Programming
2022-07-20 20:07:58 -03:00
vscode
2022-08-04 11:58:56 -03:00
rustup
2022-10-18 22:41:40 -03:00
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
2022-08-04 11:58:56 -03:00
# cargo
2022-08-06 17:14:38 -03:00
cargo-edit
cargo-feature
cargo-watch
2022-10-04 11:56:29 -03:00
cargo-expand
2022-10-17 00:18:10 -03:00
cargo-sweep
2022-08-18 13:58:35 -03:00
pkgs.unstable.rust-analyzer
2022-07-20 20:07:58 -03:00
gcc
2022-07-21 10:36:38 -03:00
nixfmt
2022-10-18 22:41:40 -03:00
trunk
wasm-bindgen-cli
sqlx-cli
2022-06-05 01:43:16 -03:00
];
2022-08-04 23:25:17 -03:00
2022-08-02 22:33:21 -03:00
home.sessionVariables = {
2022-08-12 21:28:12 -03:00
QT_QPA_PLATFORMTHEME = "gtk3";
2022-08-02 22:33:21 -03:00
VOLUME_CHANGE_SOUND =
"${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga";
2022-08-09 09:23:07 -03:00
FZF_DEFAULT_OPTS = let
colors = {
"bg+" = color.bg_light;
"hl+" = color.normal.green;
gutter = color.bg;
prompt = accent.color;
pointer = accent.color;
spinner = accent.color;
};
makeKeyValue = (k: v: "${k}:${v}");
makeOptList = lib.mapAttrsToList makeKeyValue colors;
makeColorValue = lib.strings.concatStringsSep "," makeOptList;
color_opts = "--color=${makeColorValue}";
preview_opts =
"--preview '${pkgs.bat}/bin/bat --style=numbers --color=always {}'";
in "${preview_opts} ${color_opts}";
2022-08-02 00:07:04 -03:00
};
2022-08-12 23:35:42 -03:00
programs.bash = { enable = true; };
2022-08-02 21:17:03 -03:00
home.activation = {
2022-08-02 22:33:21 -03:00
install_flatpaks = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
2022-08-10 22:29:51 -03:00
$DRY_RUN_CMD flatpak $VERBOSE_ARG remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo || true
$DRY_RUN_CMD flatpak $VERBOSE_ARG install -y flathub io.github.spacingbat3.webcord || true
2022-08-02 21:17:03 -03:00
'';
2022-06-12 23:47:05 -03:00
};
2022-06-13 12:07:08 -03:00
services.kdeconnect = {
enable = true;
indicator = true;
};
2022-07-21 10:36:38 -03:00
services.mpd = {
enable = true;
musicDirectory = "~/Música";
extraConfig = ''
restore_paused "yes"
auto_update "yes"
audio_output {
type "pulse"
name "My Pulse Output"
mixer_type "hardware"
}
filesystem_charset "UTF-8"
'';
2022-07-21 10:36:38 -03:00
};
2022-07-19 22:20:55 -03:00
home.pointerCursor = {
name = "capitaine-cursors";
2022-08-07 22:00:01 -03:00
size = 32;
2022-07-19 22:20:55 -03:00
package = pkgs.capitaine-cursors;
};
2022-06-13 22:21:47 -03:00
gtk = {
enable = true;
theme = {
name = "Orchis-Red-Dark-Compact";
2022-08-23 23:42:36 -03:00
package = pkgs.orchis_theme_compact;
2022-06-13 22:21:47 -03:00
};
iconTheme = {
name = "Papirus-Dark";
2022-08-23 23:42:36 -03:00
package = pkgs.papirus_red;
2022-06-13 22:21:47 -03:00
};
};
2022-08-12 21:28:12 -03:00
# qt = {
# enable = true;
# platformTheme = "gtk";
# # style.package = pkgs.libsForQt5.qtstyleplugins;
# # style.name = "gtk2";
# };
2022-07-21 00:29:12 -03:00
2022-10-18 20:58:23 -03:00
services.syncthing = {
enable = true;
tray.enable = true;
};
2022-07-20 20:07:58 -03:00
systemd.user.services = {
discord = {
Unit = {
Description = "Discord Internet voice chat";
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
2022-08-02 21:17:03 -03:00
ExecStart = "/usr/bin/env flatpak run io.github.spacingbat3.webcord";
2022-07-20 20:07:58 -03:00
Restart = "on-failure";
};
Install = { WantedBy = [ "sway-session.target" ]; };
};
telegram = {
Unit = {
Description = "Telegram Internet chat";
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.tdesktop}/bin/telegram-desktop";
Restart = "on-failure";
};
Install = { WantedBy = [ "sway-session.target" ]; };
};
};
2022-10-18 12:37:14 -03:00
# My bemenu wrapper
xdg.configFile = {
"bmenu.conf".text = ''
set fn "${font.mono} ${toString font.size.small}"
set tb "${color.bg}${theme.opacityHex}"
set tf "${accent.color}"
set fb "${color.bg}${theme.opacityHex}"
set ff "${color.txt}"
set nb "${color.bg}${theme.opacityHex}"
set nf "${color.txt}"
set hb "${accent.color}"
set hf "${accent.fg}"
'';
};
2022-10-18 22:41:40 -03:00
# 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";
2022-07-21 00:32:09 -03:00
}