165 lines
4.4 KiB
Nix
165 lines
4.4 KiB
Nix
{ ... }:
|
|
{
|
|
flake.modules.homeManager.desktop-commands =
|
|
{ lib, ... }:
|
|
{
|
|
options.desktop = {
|
|
commands = {
|
|
browser = lib.mkOption {
|
|
type = lib.types.nonEmptyListOf lib.types.nonEmptyStr;
|
|
};
|
|
launcher = lib.mkOption {
|
|
type = lib.types.nonEmptyListOf lib.types.nonEmptyStr;
|
|
};
|
|
terminal = lib.mkOption {
|
|
type = lib.types.nonEmptyListOf lib.types.nonEmptyStr;
|
|
};
|
|
};
|
|
autostart = lib.mkOption {
|
|
type = lib.types.listOf (lib.types.nonEmptyListOf lib.types.nonEmptyStr);
|
|
default = [ ];
|
|
};
|
|
};
|
|
};
|
|
|
|
flake.modules.homeManager.vivaldi =
|
|
{ lib, pkgs, ... }:
|
|
let
|
|
command = lib.getExe pkgs.vivaldi;
|
|
in
|
|
{
|
|
desktop.commands.browser = [ command ];
|
|
home = {
|
|
packages = [ pkgs.vivaldi ];
|
|
sessionVariables.BROWSER = command;
|
|
};
|
|
xdg.mimeApps.defaultApplicationPackages = [ pkgs.vivaldi ];
|
|
};
|
|
|
|
flake.modules.homeManager.nautilus =
|
|
{ config, pkgs, ... }:
|
|
{
|
|
home.packages = [ pkgs.nautilus ];
|
|
gtk.gtk3.bookmarks = [
|
|
"sftp://${config.facts.topology.server.sshAlias} Orion VPS"
|
|
];
|
|
xdg.mimeApps.defaultApplicationPackages = [ pkgs.nautilus ];
|
|
};
|
|
|
|
flake.modules.homeManager.imv =
|
|
{ pkgs, ... }:
|
|
{
|
|
programs.imv.enable = true;
|
|
xdg.mimeApps.defaultApplicationPackages = [ pkgs.imv ];
|
|
};
|
|
|
|
flake.modules.homeManager.sioyek =
|
|
{ pkgs, ... }:
|
|
{
|
|
programs.sioyek.enable = true;
|
|
xdg.mimeApps.defaultApplicationPackages = [ pkgs.sioyek ];
|
|
};
|
|
|
|
flake.modules.homeManager.discord = {
|
|
programs.discord = {
|
|
enable = true;
|
|
settings.SKIP_HOST_UPDATE = true;
|
|
};
|
|
};
|
|
|
|
flake.modules.homeManager.workstation-apps =
|
|
{ pkgs, ... }:
|
|
{
|
|
home.file.".harlequin.toml".text = ''
|
|
[profiles.taop]
|
|
adapter = "postgres"
|
|
conn_str = "postgresql://taop:[email protected]:5433/taop"
|
|
|
|
[profiles.schemas]
|
|
adapter = "postgres"
|
|
conn_str = "postgresql://mathesar:[email protected]:55432/traceability"
|
|
'';
|
|
|
|
home.packages = with pkgs; [
|
|
postman
|
|
spotify
|
|
rainfrog
|
|
dblab
|
|
harlequin
|
|
tabularis
|
|
dbgate
|
|
pgadmin4-desktopmode
|
|
tbls
|
|
(pgmodeler.overrideAttrs (old: {
|
|
version = "2.0.0-beta";
|
|
src = fetchFromGitHub {
|
|
owner = "nullptrlabs";
|
|
repo = "pgmodeler";
|
|
rev = "v2.0.0-beta";
|
|
hash = "sha256-NH7iRc484HskeSa8fi3nYThLq6kul3MItaiEezA4pd8=";
|
|
};
|
|
nativeBuildInputs = builtins.filter (input: input != qt6.qmake) old.nativeBuildInputs ++ [ cmake ];
|
|
buildInputs = old.buildInputs ++ [ libxml2 ];
|
|
qmakeFlags = [ ];
|
|
cmakeFlags = [ "-DPGM_PREFIX=${placeholder "out"}" ];
|
|
postPatch = ''
|
|
patchShebangs getbuildnum.sh
|
|
substituteInPlace BuildConfs.cmake \
|
|
--replace-fail /usr/bin/clang++ "$CXX" \
|
|
--replace-fail /usr/bin/clang "$CC"
|
|
'';
|
|
postInstall = ''
|
|
install -Dm444 "$src/assets/conf/pgmodeler_logo.png" \
|
|
"$out/share/icons/hicolor/256x256/apps/pgmodeler.png"
|
|
'';
|
|
}))
|
|
calcure
|
|
planify
|
|
unzip
|
|
gimp
|
|
dbeaver-bin
|
|
beekeeper-studio
|
|
onlyoffice-desktopeditors
|
|
obsidian
|
|
];
|
|
};
|
|
|
|
flake.modules.homeManager.xdg =
|
|
{ config, ... }:
|
|
let
|
|
homeDir = config.home.homeDirectory;
|
|
localDir = "${homeDir}/.local";
|
|
mediaDir = "${homeDir}/media";
|
|
in
|
|
{
|
|
home.preferXdgDirectories = true;
|
|
|
|
xdg = {
|
|
enable = true;
|
|
|
|
cacheHome = "${localDir}/cache";
|
|
configHome = "${homeDir}/.config";
|
|
dataHome = "${localDir}/share";
|
|
stateHome = "${localDir}/state";
|
|
|
|
userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
setSessionVariables = true;
|
|
|
|
download = "${homeDir}/downloads";
|
|
documents = "${homeDir}/documents";
|
|
projects = "${homeDir}/dev";
|
|
music = "${mediaDir}/music";
|
|
pictures = "${mediaDir}/images";
|
|
videos = "${mediaDir}/videos";
|
|
desktop = "${localDir}/desktop";
|
|
publicShare = "${localDir}/public";
|
|
templates = "${localDir}/templates";
|
|
};
|
|
|
|
mimeApps.enable = true;
|
|
};
|
|
};
|
|
}
|