nixos-config/hosts/home.nix
2023-07-31 21:59:41 +02:00

210 lines
5.8 KiB
Nix

#
# General Home-manager configuration
#
# flake.nix
# ├─ ./hosts
# │ └─ home.nix *
# └─ ./modules
# ├─ ./editors
# │ └─ default.nix
# ├─ ./programs
# │ └─ default.nix
# ├─ ./services
# │ └─ default.nix
# └─ ./shell
# └─ default.nix
#
{ config, lib, pkgs, user, ... }:
{
imports = # Home Manager Modules
(import ../modules/editors) ++
(import ../modules/programs) ++
(import ../modules/programs/configs) ++
(import ../modules/services) ++
(import ../modules/shell);
home = {
username = "${user}";
homeDirectory = "/home/${user}";
packages = with pkgs; [
# Terminal
btop # Resource Manager
pfetch # Minimal fetch
ranger # File Manager
gnupg # sign and authorize 2nd Fac
xdg-utils
steam
# dev tools
gcc
gnumake
gnupatch
gnulib
yubioath-flutter
nitrokey-app
tailscale
wireguard-tools
# Video/Audio
#feh # Image Viewer
mpv # Media Player
youtube-dl
#pavucontrol # Audio control
#stremio # Media Streamer
#libva-utils # vainfo
# Apps
#firefox # Browser
#google-chrome # Browser
#remmina # XRDP & VNC Client
galculator
tdesktop
hdparm
python3Full
android-tools
calibre
mtpfs
vimiv-qt
#freecad
# File Management
#okular # PDF viewer
#gnome.file-roller # Archive Manager
pcmanfm # File Manager
rsync # Syncer $ rsync -r dir1/ dir2/
unzip # Zip files
unrar # Rar files
papirus-icon-theme
# General configuration
#git # Repositories
#killall # Stop Applications
#nano # Text Editor
#pciutils # Computer utility info
#pipewire # Sound
#usbutils # USB utility info
#wacomtablet # Wacom Tablet
#wget # Downloader
#zsh # Shell
keepassxc
libreoffice
#
# General home-manager
#alacritty # Terminal Emulator
#dunst # Notifications
#doom emacs # Text Editor
#flameshot # Screenshot
#libnotify # Dep for Dunst
#neovim # Text Editor
#rofi # Menu
#udiskie # Auto Mounting
#vim # Text Editor
#
# Xorg configuration
#xclip # Console Clipboard
#xorg.xev # Input viewer
#xorg.xkill # Kill Applications
#xorg.xrandr # Screen settings
#xterm # Terminal
#
# Xorg home-manager
#picom # Compositer
#polybar # Bar
#sxhkd # Shortcuts
#
# Wayland configuration
#autotiling # Tiling Script
#swayidle # Idle Management Daemon
#wev # Input viewer
#wl-clipboard # Console Clipboard
#
# Wayland home-manager
#pamixer # Pulse Audio Mixer
#swaylock-fancy # Screen Locker
#waybar # Bar
#
# Desktop
#blueman # Bluetooth
#deluge # Torrents
#discord # Chat
#ffmpeg # Video Support (dslr)
#gmtp # Mount MTP (GoPro)
#gphoto2 # Digital Photography
#handbrake # Encoder
#heroic # Game Launcher
#hugo # Static Website Builder
#lutris # Game Launcher
#mkvtoolnix # Matroska Tool
#new-lg4ff # Logitech Drivers
#plex-media-player# Media Player
#polymc # MC Launcher
#steam # Games
#simple-scan # Scanning
#
# Laptop
#blueman # Bluetooth
#light # Display Brightness
#libreoffice # Office Tools
#simple-scan # Scanning
#
# Flatpak
#obs-studio # Recording/Live Streaming
#super-slicer-latest
#vscodium
(vscode-with-extensions.override {
vscode = vscodium;
vscodeExtensions = with vscode-extensions; [
vscodevim.vim
github.copilot
ms-python.python
ms-vscode.cpptools
dracula-theme.theme-dracula
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
];
})
];
file.".config/wall".source = ../modules/themes/wall.jpg;
file.".config/lockwall".source = ../modules/themes/lockwall.jpg;
pointerCursor = { # This will set cursor systemwide so applications can not choose their own
name = "Dracula-cursors";
package = pkgs.dracula-theme;
size = 16;
gtk.enable = true;
};
stateVersion = "22.05";
};
programs = {
home-manager.enable = true;
};
gtk = { # Theming
enable = true;
theme = {
name = "Dracula";
package = pkgs.dracula-theme;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
font = {
name = "FiraCode Nerd Font"; # or FiraCode Nerd Font Mono Medium
}; # Cursor is declared under home.pointerCursor
};
systemd.user.services.mpris-proxy = {
Unit.Description = "Mpris proxy";
Unit.After = [ "network.target" "sound.target" ];
Service.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
Install.WantedBy = [ "default.target" ];
};
}