Establish baseline
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.log
|
||||
result
|
||||
9
applications/matrix.nix
Normal file
9
applications/matrix.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
profile = import ./profile.nix;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
fluffychat
|
||||
];
|
||||
}
|
||||
6
desktop-environment/application-browser.nix
Normal file
6
desktop-environment/application-browser.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
}
|
||||
113
desktop-environment/browser.nix
Normal file
113
desktop-environment/browser.nix
Normal file
@@ -0,0 +1,113 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
AppAutoUpdate = false;
|
||||
AllowFileSelectionDialogs = true;
|
||||
AutofillAddressEnabled = true;
|
||||
AutofillCreditCardEnabled = false;
|
||||
CaptivePortal = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableSecurityBypass = {
|
||||
InvalidCertificate = false;
|
||||
SafeBrowsing = false;
|
||||
};
|
||||
DisableSetDesktopBackground = true;
|
||||
DisableTelemetry = true;
|
||||
ExtensionUpdate = true;
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
TopSites = true;
|
||||
SponsoredTopSites = false;
|
||||
Highlights = true;
|
||||
Pocket = false;
|
||||
Stories = false;
|
||||
SponsoredPocket = false;
|
||||
SponsoredStories = false;
|
||||
Snippets = true;
|
||||
Locked = true;
|
||||
};
|
||||
PictureInPicture = {
|
||||
Enabled = true;
|
||||
Locked = false;
|
||||
};
|
||||
ExtensionSettings = {
|
||||
"nextcloud-passwords@nextcloud.com" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/nextcloud-passwords/latest.xpi";
|
||||
};
|
||||
|
||||
"instapaper@instapaper.com" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/instapaper-official/latest.xpi";
|
||||
};
|
||||
|
||||
"weh@mozilla.org" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/video-downloadhelper/latest.xpi";
|
||||
};
|
||||
};
|
||||
Preferences = {
|
||||
# Tracking Protection
|
||||
"browser.contentblocking.category" = "strict";
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||
|
||||
# Cookies
|
||||
"network.cookie.cookieBehavior" = 1; # block third-party cookies
|
||||
|
||||
# Fingerprinting Protection
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.resistFingerprinting.block_mozAddonManager" = true;
|
||||
|
||||
# WebRTC IP Leak verhindern
|
||||
"media.peerconnection.enabled" = false;
|
||||
|
||||
# Telemetrie vollständig deaktivieren
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
|
||||
# SafeBrowsing (lokal behalten, aber keine unnötige Kommunikation)
|
||||
"browser.safebrowsing.downloads.remote.enabled" = false;
|
||||
|
||||
# HTTPS-Only Mode
|
||||
"dom.security.https_only_mode" = true;
|
||||
|
||||
# DNS over HTTPS Fallback deaktivieren
|
||||
"network.trr.mode" = 3;
|
||||
"network.trr.uri" = "https://dns.quad9.net/dns-query";
|
||||
|
||||
# Referrer reduzieren
|
||||
"network.http.referer.XOriginPolicy" = 2;
|
||||
|
||||
# Clipboard API nur bei User Interaction
|
||||
"dom.events.asyncClipboard.readText" = false;
|
||||
|
||||
# WebGL einschränken
|
||||
"webgl.disabled" = true;
|
||||
};
|
||||
SearchEngines = {
|
||||
Default = "Ecosia";
|
||||
|
||||
Add = [
|
||||
{
|
||||
Name = "Ecosia";
|
||||
URLTemplate = "https://www.ecosia.org/search?q={searchTerms}";
|
||||
Method = "GET";
|
||||
}
|
||||
];
|
||||
|
||||
Remove = [ "Google" "Bing" "Amazon.com" "eBay" ];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
42
desktop-environment/config.nix
Normal file
42
desktop-environment/config.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
./browser.nix
|
||||
#./planner.nix
|
||||
./window-manager.nix
|
||||
../applications/matrix.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
kitty
|
||||
pamixer
|
||||
nemo-with-extensions
|
||||
];
|
||||
|
||||
#services.dbus.enable = true;
|
||||
#programs.dconf.enable = true;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "Hyprland";
|
||||
user = profile.username;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
||||
};
|
||||
|
||||
systemd.targets.sleep.enable = false;
|
||||
systemd.targets.suspend.enable = false;
|
||||
systemd.targets.hibernate.enable = false;
|
||||
systemd.targets.hybrid-sleep.enable = false;
|
||||
}
|
||||
6
desktop-environment/file-browser.nix
Normal file
6
desktop-environment/file-browser.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
}
|
||||
48
desktop-environment/planner.nix
Normal file
48
desktop-environment/planner.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
tbProfile = pkgs.stdenv.mkDerivation {
|
||||
name = "thunderbird-profile";
|
||||
src = ./thunderbird-profile;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r . $out/
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
package = pkgs.thunderbird;
|
||||
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableAppUpdate = true;
|
||||
|
||||
Preferences = {
|
||||
"mail.provider.enabled" = false;
|
||||
"mail.openpgp.allow_external_gnupg" = true;
|
||||
"calendar.timezone.local" = "Europe/Berlin";
|
||||
};
|
||||
|
||||
Certificates = {
|
||||
ImportEnterpriseRoots = true;
|
||||
};
|
||||
|
||||
PasswordManagerEnabled = true;
|
||||
Cookies = {
|
||||
"Default" = false;
|
||||
"AcceptThirdParty" = "never";
|
||||
"Locked" = true;
|
||||
};
|
||||
|
||||
DefaultDownloadDirectory = "/tmp";
|
||||
DisableBuiltinPDFViewer = true;
|
||||
DisablePasswordReveal = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
6
desktop-environment/status-bar.nix
Normal file
6
desktop-environment/status-bar.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
}
|
||||
6
desktop-environment/terminal-emulator.nix
Normal file
6
desktop-environment/terminal-emulator.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
}
|
||||
9
desktop-environment/window-manager.nix
Normal file
9
desktop-environment/window-manager.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
#./window-manager/${profile.interface}.nix
|
||||
];
|
||||
}
|
||||
59
desktop-environment/window-manager/hyprland.nix
Normal file
59
desktop-environment/window-manager/hyprland.nix
Normal file
@@ -0,0 +1,59 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
dotfiles_hypr = pkgs.fetchgit {
|
||||
url = "https://git.nichkara.eu/dotfiles/hypr";
|
||||
rev = "83da92f0d64620c6503b8b2d9fa27bd79816e025";
|
||||
sha256 = "sha256-kEKJiH0oK0PuciJZ6ucinTKX5eMWxPPZXYNS1+HIcRA=";
|
||||
};
|
||||
|
||||
dotfiles_waybar = pkgs.fetchgit {
|
||||
url = "https://git.nichkara.eu/dotfiles/waybar";
|
||||
rev = "cd3d5d8a97f9fbc1cc8a69fc9e570dfcf669dce7";
|
||||
sha256 = "sha256-FTpGumhxY6ChUXqnykO+aSJiFD4A80W0eqx7hXS9Iwc=";
|
||||
};
|
||||
|
||||
profile = import ../../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
wofi
|
||||
grim
|
||||
swaynotificationcenter
|
||||
swaylock
|
||||
hyprpaper
|
||||
lxsession
|
||||
hyprshot
|
||||
wayvnc
|
||||
pamixer
|
||||
pavucontrol
|
||||
brightnessctl
|
||||
python313Packages.requests
|
||||
networkmanagerapplet
|
||||
];
|
||||
|
||||
#fonts.packages = with pkgs; [
|
||||
# nerd-fonts.space-mono
|
||||
# ];
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.file.".config/hypr" = {
|
||||
source = dotfiles_hypr;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/waybar" = {
|
||||
source = dotfiles_waybar;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
}
|
||||
6
desktop-environment/workspace-manager.nix
Normal file
6
desktop-environment/workspace-manager.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# New system packages
|
||||
];
|
||||
}
|
||||
49
home.nix
Normal file
49
home.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
profile = import ./profile.nix;
|
||||
home-directory = "/home/${profile.username}";
|
||||
ssh-filename = "${home-directory}/.ssh/id_ed25519";
|
||||
in
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = "nichkara";
|
||||
home.homeDirectory = "/home/nichkara";
|
||||
|
||||
# Configuration options around here
|
||||
home.stateVersion = "25.11";
|
||||
|
||||
imports = [
|
||||
#./desktop-environment/config.nix
|
||||
./terminal-environment/config.nix
|
||||
./system-environment/config.nix
|
||||
];
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = with pkgs; [
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = {
|
||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||
# # symlink to the Nix store copy.
|
||||
# ".screenrc".source = dotfiles/screenrc;
|
||||
|
||||
# # You can also set the file content immediately.
|
||||
# ".gradle/gradle.properties".text = ''
|
||||
# org.gradle.console=verbose
|
||||
# org.gradle.daemon.idletimeout=3600000
|
||||
# '';
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
# EDITOR = "emacs";
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
12
profile.nix
Normal file
12
profile.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
username = "nichkara";
|
||||
hostname = "kathleen";
|
||||
hashed-password = "$y$j9T$51IqmPE8iKV9NmF89vaK40$TJFaBOiMgcxYRWxyj3M5q47QWAIzMbwDhSoqLM3EPk4";
|
||||
interface = "hyprland";
|
||||
modules = {
|
||||
base = true;
|
||||
office = false;
|
||||
development = true;
|
||||
science = true;
|
||||
};
|
||||
}
|
||||
12
profile.nix.template
Normal file
12
profile.nix.template
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
username = "nichkara";
|
||||
hostname = "amelia";
|
||||
hashed-password = "$y$j9T$W72kGNL9hSTiN7CjnUpqH1$uyE1OzYN4kvbhhylX7pwRmLYYYmouRPVGIDZKwx8YW8";
|
||||
interface = "hyprland";
|
||||
modules = {
|
||||
base = true;
|
||||
office = false;
|
||||
development = false;
|
||||
science = false;
|
||||
};
|
||||
}
|
||||
42
system-environment/config.nix
Normal file
42
system-environment/config.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
#./file-system.nix
|
||||
./media.nix
|
||||
#./security/keyring.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnumake
|
||||
python3
|
||||
]
|
||||
++ lib.optionals profile.modules.development [
|
||||
cmake
|
||||
cmakeCurses
|
||||
|
||||
# C/C++/Fortran tools
|
||||
gcc
|
||||
clang
|
||||
|
||||
# Common C based dependencies
|
||||
eigen
|
||||
|
||||
# Ada/+Spark & Rust tools
|
||||
alire
|
||||
gnat15
|
||||
gnat15Packages.gprbuild
|
||||
gnat15Packages.gpr2
|
||||
gnat15Packages.gnatprove
|
||||
gnat15Packages.gnatcoll-core
|
||||
gnat15Packages.gnatcoll-readline
|
||||
gnat15Packages.gnatcoll-python3
|
||||
gnat15Packages.gnatcoll-gmp
|
||||
rustc
|
||||
cargo
|
||||
];
|
||||
|
||||
}
|
||||
19
system-environment/file-system.nix
Normal file
19
system-environment/file-system.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
services.udisks2.enable = true;
|
||||
services.gvfs.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
nextcloud-client
|
||||
unzip
|
||||
deja-dup
|
||||
gnutar
|
||||
xz
|
||||
gzip
|
||||
gz-utils
|
||||
file
|
||||
fileinfo
|
||||
];
|
||||
|
||||
}
|
||||
12
system-environment/media.nix
Normal file
12
system-environment/media.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
calibre
|
||||
kdePackages.okular
|
||||
vlc
|
||||
totem
|
||||
w3m
|
||||
epr
|
||||
];
|
||||
}
|
||||
15
system-environment/security/keyring.nix
Normal file
15
system-environment/security/keyring.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
imports = [ ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
seahorse
|
||||
];
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
security.pam.services.login.enableGnomeKeyring = true;
|
||||
}
|
||||
80
terminal-environment/config.nix
Normal file
80
terminal-environment/config.nix
Normal file
@@ -0,0 +1,80 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
./editor.nix
|
||||
./tex-environment.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
astyle
|
||||
hyfetch
|
||||
fzf-zsh
|
||||
distrobox
|
||||
];
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
extraConfig = ''
|
||||
|
||||
'';
|
||||
};
|
||||
|
||||
programs.direnv.enable = true;
|
||||
programs.direnv.nix-direnv.enable = true;
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autocd = true;
|
||||
|
||||
autosuggestion = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
syntaxHighlighting = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
history = {
|
||||
size = 4096;
|
||||
ignoreSpace = true;
|
||||
ignorePatterns = [ ];
|
||||
saveNoDups = true;
|
||||
ignoreAllDups = true;
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "sonicradish";
|
||||
plugins = [
|
||||
"git"
|
||||
"z"
|
||||
"dotenv"
|
||||
"battery"
|
||||
"emoji"
|
||||
"emoji-clock"
|
||||
"fzf"
|
||||
"kitty"
|
||||
"themes"
|
||||
"tmux"
|
||||
"vi-mode"
|
||||
];
|
||||
};
|
||||
|
||||
setOptions = [
|
||||
"HIST_IGNORE_ALL_DUPS"
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
ll = "ls -lh";
|
||||
nix-check = "nixos-rebuild build";
|
||||
nix-update = "sudo nixos-rebuild switch";
|
||||
sirc = "ssh -t nichkara.eu tmux new-session -A -s weechat weechat";
|
||||
};
|
||||
};
|
||||
}
|
||||
25
terminal-environment/editor.nix
Normal file
25
terminal-environment/editor.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
vim
|
||||
fzf
|
||||
ripgrep
|
||||
ripgrep-all
|
||||
ctags
|
||||
lua54Packages.luarocks-nix
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
withPython3 = true;
|
||||
withRuby = true;
|
||||
withNodeJs = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
}
|
||||
67
terminal-environment/genv/default.nix
Normal file
67
terminal-environment/genv/default.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
genv = pkgs.writeShellScriptBin "genv" ''
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
DISTRO="$1"
|
||||
PRESET="$2"
|
||||
|
||||
if [ -z "$DISTRO" ] || [ -z "$PRESET" ]; then
|
||||
echo "Usage: genv <distro> <preset>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROJECT=$(basename "$PWD")
|
||||
BOX="genv-$PROJECT"
|
||||
|
||||
# distro mapping
|
||||
case "$DISTRO" in
|
||||
ubuntu) IMAGE="docker.io/library/ubuntu:24.04" ;;
|
||||
arch) IMAGE="docker.io/library/archlinux:latest" ;;
|
||||
alpine) IMAGE="docker.io/library/alpine:latest" ;;
|
||||
*) IMAGE="$DISTRO" ;;
|
||||
esac
|
||||
|
||||
echo "[genv] image: $IMAGE"
|
||||
|
||||
# container nur erstellen wenn nötig
|
||||
if ! distrobox list | grep -q "$BOX"; then
|
||||
distrobox create --name "$BOX" --image "$IMAGE"
|
||||
fi
|
||||
|
||||
mkdir -p .genv
|
||||
|
||||
# preset kopieren
|
||||
cp ${./presets}/$PRESET.sh .genv/setup.sh
|
||||
chmod +x .genv/setup.sh
|
||||
|
||||
# envrc generieren
|
||||
cat > .envrc <<EOF
|
||||
export GENV_BOX="$BOX"
|
||||
|
||||
# container starten
|
||||
distrobox start "$GENV_BOX" >/dev/null 2>&1 || true
|
||||
|
||||
# setup einmalig
|
||||
if [ ! -f .genv/.init ]; then
|
||||
echo "[genv] setup läuft"
|
||||
distrobox enter "$GENV_BOX" -- bash .genv/setup.sh
|
||||
touch .genv/.init
|
||||
fi
|
||||
|
||||
# tmux workflow
|
||||
if [ -z "$TMUX" ]; then
|
||||
tmux new-session -A -s "$GENV_BOX" \
|
||||
\; new-window -n editor "nvim" \
|
||||
\; new-window -n dev "distrobox enter $GENV_BOX"
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo "[genv] fertig → direnv allow"
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.packages = [ genv ];
|
||||
}
|
||||
11
terminal-environment/genv/presets/c.sh
Normal file
11
terminal-environment/genv/presets/c.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if command -v apt >/dev/null; then
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential cmake
|
||||
elif command -v pacman >/dev/null; then
|
||||
sudo pacman -Sy --noconfirm base-devel cmake
|
||||
elif command -v apk >/dev/null; then
|
||||
sudo apk add build-base cmake
|
||||
fi
|
||||
11
terminal-environment/genv/presets/data-science.sh
Normal file
11
terminal-environment/genv/presets/data-science.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if command -v apt >/dev/null; then
|
||||
sudo apt update
|
||||
sudo apt install -y python3
|
||||
elif command -v pacman >/dev/null; then
|
||||
sudo pacman -Sy --noconfirm base-devel python3
|
||||
elif command -v apk >/dev/null; then
|
||||
sudo apk add build-base python3
|
||||
fi
|
||||
11
terminal-environment/tex-environment.nix
Normal file
11
terminal-environment/tex-environment.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
texliveMedium
|
||||
];
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user