NixOS-Config/home-manager/desktop/default.nix

268 lines
7.1 KiB
Nix

{
pkgs,
config,
...
}: {
# You can import other home-manager modules here
imports = [
# If you want to use modules your own flake exports (from modules/home-manager):
# outputs.homeManagerModules.example
# Or modules exported from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModules.default
# You can also split up your configuration and import pieces of it here:
# ./nvim.nix
./package-configs/plasma-desktop.nix
./package-configs/firefox.nix
./package-configs/konsole
./package-configs/foot
./package-configs/freetube
./package-configs/vesktop
];
nixpkgs = {
# You can add overlays here
overlays = [
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
# (final: prev: {
# catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
# accent = "mauve";
# boldKeywords = true;
# italicComments = true;
# italicKeywords = true;
# extraBordersEnabled = false;
# workbenchMode = "default";
# bracketMode = "rainbow";
# colorOverrides = {};
# customUIColors = {};
# });
# })
# (final: prev: {
# catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
# accent = "mauve";
# boldKeywords = true;
# italicComments = true;
# italicKeywords = true;
# extraBordersEnabled = false;
# workbenchMode = "default";
# bracketMode = "rainbow";
# colorOverrides = {};
# customUIColors = {};
# });
# })
];
config = {
permittedInsecurePackages = ["cinny-4.2.3" "cinny-unwrapped-4.2.3" "cinny-4.2.2" "cinny-unwrapped-4.2.2"];
# Configure your nixpkgs instance
# Disable if you don't want unfree packages
allowUnfree = true;
};
};
systemd.user = {
services."nextcloud-autosync@" = {
Unit = {
Description = "Auto sync Nextcloud";
After = "network-online.target";
PartOf = ["nextcloud-autosyncs.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /%i /home/lillian/%i https://nextcloud.gladtherescake.eu";
TimeoutStopSec = "180";
KillMode = "process";
KillSignal = "SIGINT";
};
Install.WantedBy = ["multi-user.target"];
};
targets.nextcloud-autosyncs = {
Unit = {
Description = "workers";
Requires = ["nextcloud-autosync@Music" "nextcloud-autosync@Pictures" "nextcloud-autosync@Scripts" "nextcloud-autosync@Videos" "nextcloud-autosync@Documents"];
PartOf = "nextcloud-autosyncs.target";
};
Install.WantedBy = ["multi-user.target"];
};
timers.nextcloud-autosyncs = {
Unit.Description = "Automatic sync files with Nextcloud when booted up after 5 minutes then rerun every 60 minutes";
Timer.OnBootSec = "5min";
Timer.OnUnitActiveSec = "60min";
Install.WantedBy = ["multi-user.target" "timers.target"];
};
# Nicely reload system units when changing configs
startServices = "sd-switch";
};
home = {
username = "lillian";
homeDirectory = "/home/lillian";
file = {
# Music = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Music";
# target = "Music";
# };
# Pictures = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures";
# target = "Pictures";
# };
# Scripts = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Scripts";
# target = "Scripts";
# };
# Videos = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Videos";
# target = "Videos";
# };
# Documents = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Documents";
# target = "Documents";
# };
floorp = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
target = ".floorp";
};
};
# Add stuff for your user as you see fit:
# programs.neovim.enable = true;
# home.packages = with pkgs; [ steam ];
packages = with pkgs; [
# Coding:
direnv
git
git-credential-manager
git-credential-manager
ruff
kate
# Chat applications:
signal-desktop
vesktop
# cinny-desktop
# Gaming:
prismlauncher
steam
gamescope
# Multimedia:
freetube
vlc
fcast-receiver
fcast-client
# Office applications:
onlyoffice-bin
gimp
thunderbird
# System tools:
rage
flameshot
fzf
nextcloud-client
nitrokey-app
protonvpn-gui
virtualbox
#watchmate
qbittorrent
# Theming:
catppuccin-cursors
(catppuccin-kde.override {
flavour = ["macchiato"];
accents = ["mauve"];
})
catppuccin-sddm-corners
# Theming:
catppuccin-cursors
(catppuccin-kde.override {
flavour = ["macchiato"];
accents = ["mauve"];
})
catppuccin-sddm-corners
# Web browsing:
firefoxpwa
firefoxpwa
ungoogled-chromium
];
};
programs = {
# vscode = {
# enable = true;
# package = pkgs.vscodium;
# extensions = with pkgs.vscode-extensions; [
# catppuccin.catppuccin-vsc
# catppuccin.catppuccin-vsc-icons
# charliermarsh.ruff
# eamodio.gitlens
# github.vscode-pull-request-github
# jnoortheen.nix-ide
# kamadorueda.alejandra
# mkhl.direnv
# ms-toolsai.jupyter
# ms-pyright.pyright
# oderwat.indent-rainbow
# rust-lang.rust-analyzer
# yzhang.markdown-all-in-one
# ];
# };
obs-studio.enable = true;
obs-studio.plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
# Enable home-manager and git
home-manager.enable = true;
git = {
enable = true;
userEmail = "git@lillianviolet.dev";
userName = "Lillian-Violet";
extraConfig = {
init = {
defaultBranch = "main";
};
};
ignores = [
"*.direnv"
"*.vscode"
".envrc"
"venv"
"venv"
];
};
gpg.enable = true;
gpg.settings = {
default-key = "0d43 5407 034c 2ad9 2d42 799d 280e 061d ff60 0f0d";
default-recipient-self = true;
auto-key-locate = "local,wkd,keyserver";
keyserver = "hkps://keys.openpgp.org";
auto-key-retrieve = true;
auto-key-import = true;
keyserver-options = "honor-keyserver-url";
no-autostart = true;
};
};
services = {
kdeconnect.package = pkgs.kdePackages.kdeconnect-kde;
kdeconnect.enable = true;
};
}