~hervyqa/dotfire

Nixos KDE Plasma configuration for Data Science.

d473b36 service disable: mongodb (high cpu to compile)

~hervyqa pushed to ~hervyqa/dotfire git

9 hours ago

1e260a2 update mongodb, espanso, docker

~hervyqa pushed to ~hervyqa/dotfire git

10 hours ago

#NixOS for Data Science

image

Minimalist configuration of Nixos operating system with KDE Plasma (disk encrypted) for Data Science.

#Installation

  1. Cloning.

    git clone git@gitlab.com:hervyqa/dotfire.git
    cd dotfire
    
  2. Symlink.

    sudo mv /etc/configuration.nix /etc/configuration.nix.backup
    sudo ln -s $PWD/configuration.nix /etc/nixos/
    

#Variable

name = "hervyqa";
fullname = "Hervy Qurrotul Ainur Rozi";
email = "hervyqa@proton.me";
timezone = "Asia/Jakarta";
defaultlocale = "en_US.UTF-8";
extralocale = "id_ID.UTF-8";
layout = "us";
gpgkey = "85161EB8";
hostname = "nixos";
version = "23.05";

Replace the variables above according to your data in directory:

  1. packages: git
  2. system: locale, network, nix, system, timezone, users
  3. services: xserver

#Settings

Hardware Enable Description
driSupport true Whether to enable accelerated OpenGL rendering through the Direct Rendering Interface (DRI).
driSupport32Bit false On 64-bit systems, whether to support Direct Rendering for 32-bit applications.
plymouth false Whether to enable Plymouth boot splash screen.
sane false Enable support for SANE scanners.
brscan4 false Automatically register the "brscan4" sane backend and bring configuration files to their expected location.
Programs Enable Description
adb true Whether to configure system to use Android Debug Bridge (adb).
dconf true Whether to enable dconf.
droidcam true Whether to enable DroidCam client.
firefox true Whether to enable the Firefox web browser.
fish true Whether to configure fish as an interactive shell.
git true Whether to enable git.
gnupg.agent true Enables GnuPG agent with socket-activation for every user session.
java true Install and setup the Java development kit.
kdeconnect true Whether to enable kdeconnect.
mtr true Whether to add mtr to the global environment and configure a setcap wrapper for it.
partition-manager true Whether to enable KDE Partition Manager.
tmux true Whenever to configure tmux system-wide.
command-not-found false Whether interactive shells should show which Nix package (if any) provides a missing command.
corectrl false Whether to enable A tool to overclock amd graphics cards and processors.
gamemode false Whether to enable GameMode to optimise system performance on demand.
htop false Whether to enable htop process monitor.
steam false Whether to enable steam.
Service Enable Description
avahi true Allows Avahi clients to use Avahi's service discovery facilities.
dnscrypt-proxy2 true Whether to enable dnscrypt-proxy2.
earlyoom true Whether to enable Early out of memory killing.
fstrim true Whether to enable periodic SSD TRIM of mounted partitions in background.
jupyter true Whether to enable Jupyter development server.
mongodb true Whether to enable MongoDB Server.
mysql true Whether to enable MySQL server (MariaDB).
pipewire true Whether to enable pipewire service.
postgresql true Whether to enable PostgreSQL Server.
power-profiles-daemon true DBus daemon that allows changing system behavior based upon user-selected power profiles.
printing true Whether to enable printing support through the CUPS daemon.
redis true An open source, advanced key-value store.
sddm true Whether to enable sddm as the display manager.
udev true Whether to enable udev.
udisks2 true DBus service that allows applications to query and manipulate storage devices.
xserver true Whether to enable the X server.
colord false Whether to enable colord, the color management daemon.
clamav false Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats.
clickhouse false Whether to enable ClickHouse database server.
espanso false Whether to enable Espanso.
grafana false Whether to enable grafana.
jupyterhub false Whether to enable Jupyterhub development server.
metabase false Whether to enable Metabase service.
openssh false OpenSSH secure shell daemon, which allows secure remote logins.
thermald false Whether to enable thermald, the temperature management daemon.
tlp false Whether to enable the TLP power management daemon.
System Enable Description
allowUnfree true The configuration of the Nix Packages collection to allow unfree packages.
auto-optimise-store true Replaces files in the store that have identical contents with hard links to a single copy.
bluetooth true Whether to enable support for Bluetooth.
doas true Whether to enable the doas command, which allows non-root users to execute commands as root.
firewall true This is a simple stateful firewall that blocks connection attempts to unauthorised TCP or UDP ports on this machine.
networkmanager true Obtain an IP address and other configuration for all network interfaces that are not manually configured.
nix.gc.automatic true Automatically run the garbage collector at a specific time.
nix.optimise true Automatically run the nix store optimiser at a specific time.
powerManagement true Whether to enable power management. This includes support for suspend-to-RAM and powersave features on laptops.
rtkit true Whether to enable the RealtimeKit system service, which hands out realtime scheduling priority to user processes on demand.
systemd-boot true Whether to enable the systemd-boot (formerly gummiboot) EFI boot manager.
tmpOnTmpfs true Whether to mount a tmpfs on /tmp during boot.
xdg.mime true Whether to install files to support the XDG Shared MIME-info specification and the XDG MIME Applications specification.
zramSwap true Enable in-memory compressed devices and swap space provided by the zram kernel module.
allowReboot false Reboot the system into the new generation instead of a switch.
autoUpgrade false Whether to periodically upgrade NixOS to the latest version.
documentation.doc false Whether to install documentation distributed in packages' /share/doc.
documentation.info false Whether to install info pages and the info command. This also includes "info" outputs.
documentation.nixos false Whether to install NixOS's own documentation.
iwd false Whether to enable iwd.
oomd false Whether to disable the systemd-oomd OOM killer.
pulseaudio false Whether to enable the PulseAudio sound server.
sudo false Whether to disable the sudo command, which allows non-root users to execute commands as root.
useOSProber false If set to true, append entries for other OSs detected by os-prober.
xdg.portal.lxqt false Whether to enable the desktop portal for the LXQt desktop environment.
xdg.portal.wlr false Whether to enable desktop portal for wlroots-based desktops.
Virtualisation Enable Description
docker true This option enables docker, a daemon that manages linux containers.

#Open Source Data Science

#RStudio for R

RStudio is an integrated development environment (IDE) for R and Python. It includes a console, syntax-highlighting editor that supports direct code execution, and tools for plotting, history, debugging, and workspace management. RStudio is available in open source and commercial editions and runs on the desktop (Windows, Mac, and Linux).

#Spyder IDE for Python

Spyder IDE is a free and open source scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts. It features a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.

#VSCodium

The VSCodium Free/Libre Open Source Software Binaries of VS Code. VSCodium is a community-driven, freely-licensed binary distribution of Microsoft’s editor VS Code. Telemetry is disabled.

#JupyterLab

JupyterLab is the latest web-based interactive development environment for notebooks, code, and data. Its flexible interface allows users to configure and arrange workflows in data science, scientific computing, computational journalism, and machine learning.

#DBeaver for Database

DBeaver Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Apache Hive, Phoenix, Presto, etc.

#Beekeeper Studio

Beekeeper Studio A modern, easy to use, and good looking SQL client for MySQL, Postgres, SQLite, SQL Server, and more.

#Robo3T for MongoDB

Robo 3T (formerly Robomongo) is the free, lightweight, open-source MongoDB GUI with an embedded mongo shell, real auto-completion, and support for MongoDB 4.0.

#SQLite Browser

DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.

#GNU Octave

GNU Octave The Octave syntax is largely compatible with Matlab. The Octave interpreter can be run in GUI mode, as a console, or invoked as part of a shell script.

#Clickhouse

Clickhouse Column-oriented databases are better suited to OLAP scenarios. They are at least 100x faster in processing most queries. ClickHouse uses all available system resources to their full potential to process each analytical query as fast as possible.

#SageMath

SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers. The Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.

#ROOT Data Analysis Framework

The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Having the data defined as a set of objects, specialized storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch the bulk of the data.

#Maxima

Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, sets, lists, vectors, matrices and tensors.

Maxima yields high precision numerical results by using exact fractions, arbitrary-precision integers and variable-precision floating-point numbers. Maxima can plot functions and data in two and three dimensions.

#Metabase

Metabase is an open-source business intelligence platform. You can use Metabase to ask questions about your data, or embed Metabase in your app to let your customers explore their data on their own.

#Grafana

Grafana is the open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

#Helix Editor

Helix Editor A zero config post-modern CLI text editor similiar VIM or Neovim.

#Texstudio

Texstudio is an integrated writing environment for creating LaTeX documents. The goal is to make writing LaTeX as easy and comfortable as possible. Therefore TeXstudio has numerous features like syntax-highlighting, integrated viewer, reference checking, and various assistants.

#CLI tools

  • dvc Version Control System for Machine Learning Projects.
  • gnuplot Portable command-line driven graphing utility for many platforms.
  • kaggle Official API for Kaggle, accessible using a command line tool implemented in Python 3.
  • luigi Python package that helps you build complex pipelines of batch jobs.
  • visidata Interactive terminal multitool for tabular data.

#Programming Languages

In addition to R and python3, there are also maxima, julia, rakudo, sage, and scala.

#Art & Multimedia

Sometimes i am work to make visualisations, infographics, edit photo, short videos, and other works or hobby of art. I need to install from graphic and media directory. Maybe you need to comment these packages.

#License

MIT License

Copyright (c) 2023 Hervy Qurrotul Ainur Rozi