Add ssh and git configuration
This commit is contained in:
@@ -1,9 +1,14 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
profile = import ./profile.nix;
|
profile = import ./profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
fluffychat
|
fluffychat
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# New system packages
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,113 +1,118 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# 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" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./browser.nix
|
./browser.nix
|
||||||
#./planner.nix
|
#./planner.nix
|
||||||
./window-manager.nix
|
./window-manager.nix
|
||||||
../applications/matrix.nix
|
../applications/matrix.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
kitty
|
kitty
|
||||||
pamixer
|
pamixer
|
||||||
nemo-with-extensions
|
nemo-with-extensions
|
||||||
];
|
];
|
||||||
|
|
||||||
#services.dbus.enable = true;
|
#services.dbus.enable = true;
|
||||||
#programs.dconf.enable = true;
|
#programs.dconf.enable = true;
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
||||||
config.common.default = "*";
|
config.common.default = "*";
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# New system packages
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
tbProfile = pkgs.stdenv.mkDerivation {
|
tbProfile = pkgs.stdenv.mkDerivation {
|
||||||
name = "thunderbird-profile";
|
name = "thunderbird-profile";
|
||||||
@@ -11,38 +16,38 @@ let
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# New system packages
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.thunderbird = {
|
programs.thunderbird = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.thunderbird;
|
package = pkgs.thunderbird;
|
||||||
|
|
||||||
policies = {
|
policies = {
|
||||||
DisableTelemetry = true;
|
DisableTelemetry = true;
|
||||||
DisableAppUpdate = true;
|
DisableAppUpdate = true;
|
||||||
|
|
||||||
Preferences = {
|
Preferences = {
|
||||||
"mail.provider.enabled" = false;
|
"mail.provider.enabled" = false;
|
||||||
"mail.openpgp.allow_external_gnupg" = true;
|
"mail.openpgp.allow_external_gnupg" = true;
|
||||||
"calendar.timezone.local" = "Europe/Berlin";
|
"calendar.timezone.local" = "Europe/Berlin";
|
||||||
};
|
};
|
||||||
|
|
||||||
Certificates = {
|
Certificates = {
|
||||||
ImportEnterpriseRoots = true;
|
ImportEnterpriseRoots = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
PasswordManagerEnabled = true;
|
PasswordManagerEnabled = true;
|
||||||
Cookies = {
|
Cookies = {
|
||||||
"Default" = false;
|
"Default" = false;
|
||||||
"AcceptThirdParty" = "never";
|
"AcceptThirdParty" = "never";
|
||||||
"Locked" = true;
|
"Locked" = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
DefaultDownloadDirectory = "/tmp";
|
DefaultDownloadDirectory = "/tmp";
|
||||||
DisableBuiltinPDFViewer = true;
|
DisableBuiltinPDFViewer = true;
|
||||||
DisablePasswordReveal = true;
|
DisablePasswordReveal = true;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# New system packages
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# New system packages
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
#./window-manager/${profile.interface}.nix
|
#./window-manager/${profile.interface}.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,59 +1,61 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
dotfiles_hypr = pkgs.fetchgit {
|
dotfiles_hypr = pkgs.fetchgit {
|
||||||
url = "https://git.nichkara.eu/dotfiles/hypr";
|
url = "https://git.nichkara.eu/dotfiles/hypr";
|
||||||
rev = "83da92f0d64620c6503b8b2d9fa27bd79816e025";
|
rev = "83da92f0d64620c6503b8b2d9fa27bd79816e025";
|
||||||
sha256 = "sha256-kEKJiH0oK0PuciJZ6ucinTKX5eMWxPPZXYNS1+HIcRA=";
|
sha256 = "sha256-kEKJiH0oK0PuciJZ6ucinTKX5eMWxPPZXYNS1+HIcRA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
dotfiles_waybar = pkgs.fetchgit {
|
dotfiles_waybar = pkgs.fetchgit {
|
||||||
url = "https://git.nichkara.eu/dotfiles/waybar";
|
url = "https://git.nichkara.eu/dotfiles/waybar";
|
||||||
rev = "cd3d5d8a97f9fbc1cc8a69fc9e570dfcf669dce7";
|
rev = "cd3d5d8a97f9fbc1cc8a69fc9e570dfcf669dce7";
|
||||||
sha256 = "sha256-FTpGumhxY6ChUXqnykO+aSJiFD4A80W0eqx7hXS9Iwc=";
|
sha256 = "sha256-FTpGumhxY6ChUXqnykO+aSJiFD4A80W0eqx7hXS9Iwc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
profile = import ../../profile.nix;
|
profile = import ../../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wofi
|
wofi
|
||||||
grim
|
grim
|
||||||
swaynotificationcenter
|
swaynotificationcenter
|
||||||
swaylock
|
swaylock
|
||||||
hyprpaper
|
hyprpaper
|
||||||
lxsession
|
lxsession
|
||||||
hyprshot
|
hyprshot
|
||||||
wayvnc
|
wayvnc
|
||||||
pamixer
|
pamixer
|
||||||
pavucontrol
|
pavucontrol
|
||||||
brightnessctl
|
brightnessctl
|
||||||
python313Packages.requests
|
python313Packages.requests
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
];
|
];
|
||||||
|
|
||||||
#fonts.packages = with pkgs; [
|
#fonts.packages = with pkgs; [
|
||||||
# nerd-fonts.space-mono
|
# nerd-fonts.space-mono
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = true;
|
withUWSM = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".config/hypr" = {
|
home.file.".config/hypr" = {
|
||||||
source = dotfiles_hypr;
|
source = dotfiles_hypr;
|
||||||
recursive = true;
|
force = true;
|
||||||
};
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
home.file.".config/waybar" = {
|
home.file.".config/waybar" = {
|
||||||
source = dotfiles_waybar;
|
source = dotfiles_waybar;
|
||||||
recursive = true;
|
force = true;
|
||||||
};
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# New system packages
|
# New system packages
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
28
home.nix
28
home.nix
@@ -1,9 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
profile = import ./profile.nix;
|
profile = import ./profile.nix;
|
||||||
home-directory = "/home/${profile.username}";
|
home-directory = "/home/${profile.username}";
|
||||||
ssh-filename = "${home-directory}/.ssh/id_ed25519";
|
ssh-filename = "${home-directory}/.ssh/id_ed25519";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
@@ -27,18 +27,18 @@ in
|
|||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
home.file = {
|
#home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
# # symlink to the Nix store copy.
|
# # symlink to the Nix store copy.
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
# # You can also set the file content immediately.
|
||||||
# ".gradle/gradle.properties".text = ''
|
# ".gradle/gradle.properties".text = ''
|
||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
};
|
#};
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
|
|||||||
20
profile.nix
20
profile.nix
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
username = "nichkara";
|
username = "nichkara";
|
||||||
hostname = "kathleen";
|
hostname = "kathleen";
|
||||||
hashed-password = "$y$j9T$51IqmPE8iKV9NmF89vaK40$TJFaBOiMgcxYRWxyj3M5q47QWAIzMbwDhSoqLM3EPk4";
|
hashed-password = "$y$j9T$51IqmPE8iKV9NmF89vaK40$TJFaBOiMgcxYRWxyj3M5q47QWAIzMbwDhSoqLM3EPk4";
|
||||||
interface = "hyprland";
|
interface = "hyprland";
|
||||||
modules = {
|
modules = {
|
||||||
base = true;
|
base = true;
|
||||||
office = false;
|
office = false;
|
||||||
development = true;
|
development = true;
|
||||||
science = true;
|
science = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./file-system.nix
|
./file-system.nix
|
||||||
./media.nix
|
./media.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gnumake
|
gnumake
|
||||||
python3
|
python3
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
#services.udisks2.enable = true;
|
#services.udisks2.enable = true;
|
||||||
#services.gvfs.enable = true;
|
#services.gvfs.enable = true;
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
unzip
|
unzip
|
||||||
deja-dup
|
deja-dup
|
||||||
gnutar
|
gnutar
|
||||||
xz
|
xz
|
||||||
gzip
|
gzip
|
||||||
gz-utils
|
gz-utils
|
||||||
file
|
file
|
||||||
fileinfo
|
fileinfo
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
calibre
|
calibre
|
||||||
kdePackages.okular
|
kdePackages.okular
|
||||||
vlc
|
vlc
|
||||||
totem
|
totem
|
||||||
w3m
|
w3m
|
||||||
epr
|
epr
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [ ];
|
imports = [ ];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
seahorse
|
seahorse
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
security.pam.services.login.enableGnomeKeyring = true;
|
security.pam.services.login.enableGnomeKeyring = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,80 +1,115 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./editor.nix
|
./editor.nix
|
||||||
./tex-environment.nix
|
./tex-environment.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
astyle
|
git
|
||||||
hyfetch
|
astyle
|
||||||
fzf-zsh
|
hyfetch
|
||||||
distrobox
|
fzf-zsh
|
||||||
|
distrobox
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
clock24 = true;
|
||||||
|
extraConfig = builtins.readFile ./external/tmux.conf;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.direnv.enable = true;
|
||||||
|
programs.direnv.nix-direnv.enable = true;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
user = {
|
||||||
|
name = "Nina Chlóe Kassandra Reiß";
|
||||||
|
email = "nina.reiss@nickr.eu";
|
||||||
|
};
|
||||||
|
push = {
|
||||||
|
autoSetupRemote = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.ssh = {
|
||||||
|
enable = true;
|
||||||
|
enableDefaultConfig = true;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
Host git.nickr.eu
|
||||||
|
HostName git.nickr.eu
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
Host nickr.eu
|
||||||
|
HostName nickr.eu
|
||||||
|
Port 222
|
||||||
|
|
||||||
|
Host nichkara.eu
|
||||||
|
HostName nichkara.eu
|
||||||
|
Port 222
|
||||||
|
|
||||||
|
Host git.nichkara.eu
|
||||||
|
HostName git.nichkara.eu
|
||||||
|
Port 22
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
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"
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.tmux = {
|
shellAliases = {
|
||||||
enable = true;
|
ll = "ls -lh";
|
||||||
clock24 = true;
|
nix-check = "nixos-rebuild build";
|
||||||
extraConfig = ''
|
nix-update = "sudo nixos-rebuild switch";
|
||||||
|
sirc = "ssh -t nichkara.eu tmux new-session -A -s weechat weechat";
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,26 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
vim
|
vim
|
||||||
fzf
|
fzf
|
||||||
ripgrep
|
ripgrep
|
||||||
ripgrep-all
|
ripgrep-all
|
||||||
ctags
|
ctags
|
||||||
lua54Packages.luarocks-nix
|
lua54Packages.luarocks-nix
|
||||||
];
|
nixfmt
|
||||||
|
];
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
withPython3 = true;
|
withPython3 = true;
|
||||||
withRuby = true;
|
withRuby = true;
|
||||||
withNodeJs = true;
|
withNodeJs = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
87
terminal-environment/external/tmux.conf
vendored
Normal file
87
terminal-environment/external/tmux.conf
vendored
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
##### CORE #####
|
||||||
|
set -g default-terminal "tmux-256color"
|
||||||
|
set -ga terminal-overrides ",xterm-256color:Tc"
|
||||||
|
|
||||||
|
set -g mouse on
|
||||||
|
set -g focus-events on
|
||||||
|
set -g history-limit 100000
|
||||||
|
|
||||||
|
set -g base-index 1
|
||||||
|
setw -g pane-base-index 1
|
||||||
|
|
||||||
|
##### TIMING / UX #####
|
||||||
|
set -g escape-time 10
|
||||||
|
set -g repeat-time 600
|
||||||
|
|
||||||
|
##### BELL / ACTIVITY #####
|
||||||
|
# Keine akustische Bell, nur visuell
|
||||||
|
set -g bell-action none
|
||||||
|
set -g visual-bell on
|
||||||
|
set -g visual-activity on
|
||||||
|
|
||||||
|
setw -g monitor-activity on
|
||||||
|
set -g activity-action none
|
||||||
|
|
||||||
|
# Window-Status bei Bell / Activity (Fallback-Styling)
|
||||||
|
set -g window-status-bell-style "fg=#ff5555,bold"
|
||||||
|
set -g window-status-activity-style "fg=#f1fa8c,bold"
|
||||||
|
|
||||||
|
##### COLORS (Dracula-ish) #####
|
||||||
|
set -g status-style "bg=#1e1f29,fg=#c0caf5"
|
||||||
|
set -g message-style "bg=#2a2b3d,fg=#c0caf5"
|
||||||
|
|
||||||
|
set -g pane-border-style "fg=#3b4261"
|
||||||
|
set -g pane-active-border-style "fg=#7aa2f7"
|
||||||
|
|
||||||
|
##### STATUS BAR #####
|
||||||
|
set -g status on
|
||||||
|
set -g status-interval 2
|
||||||
|
set -g status-position bottom
|
||||||
|
set -g status-justify left
|
||||||
|
|
||||||
|
set -g status-left-length 100
|
||||||
|
set -g status-right-length 100
|
||||||
|
|
||||||
|
##### LEFT: Session / Host #####
|
||||||
|
set -g status-left " \
|
||||||
|
#[fg=#7aa2f7,bold] #S#[default] \
|
||||||
|
#[fg=#565f89] #[fg=#9ece6a]#H#[default] \
|
||||||
|
"
|
||||||
|
|
||||||
|
##### WINDOW LIST #####
|
||||||
|
# Inactive windows
|
||||||
|
setw -g window-status-format " \
|
||||||
|
#[fg=#565f89] #I:#W#[default] \
|
||||||
|
#{?window_bell_flag,#[fg=#ff5555]🔔#[default],} \
|
||||||
|
"
|
||||||
|
|
||||||
|
# Active window
|
||||||
|
setw -g window-status-current-format " \
|
||||||
|
#[fg=#1e1f29,bg=#7aa2f7,bold] #I:#W#[default] \
|
||||||
|
#[fg=#1e1f29,bg=#7aa2f7]\
|
||||||
|
#{?window_bell_flag,🔔,}#[default] \
|
||||||
|
"
|
||||||
|
|
||||||
|
##### RIGHT: Clock only (no broken flags) #####
|
||||||
|
set -g status-right " \
|
||||||
|
#[fg=#565f89] #[fg=#7dcfff] %H:%M#[default] \
|
||||||
|
"
|
||||||
|
|
||||||
|
##### PANE INFO #####
|
||||||
|
set -g pane-border-status top
|
||||||
|
set -g pane-border-format " #[fg=#565f89]#P #[fg=#7aa2f7]#{pane_current_command}#[default] "
|
||||||
|
|
||||||
|
##### SMART SPLITS #####
|
||||||
|
bind | split-window -h
|
||||||
|
bind - split-window -v
|
||||||
|
#unbind '"'
|
||||||
|
#unbind %
|
||||||
|
|
||||||
|
##### COPY MODE (VI) #####
|
||||||
|
setw -g mode-keys vi
|
||||||
|
bind -T copy-mode-vi v send -X begin-selection
|
||||||
|
bind -T copy-mode-vi y send -X copy-selection
|
||||||
|
|
||||||
|
##### DIM INACTIVE PANES #####
|
||||||
|
set -g window-style "bg=#1a1b26"
|
||||||
|
set -g window-active-style "bg=#1e1f29"
|
||||||
@@ -2,64 +2,64 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
genv = pkgs.writeShellScriptBin "genv" ''
|
genv = pkgs.writeShellScriptBin "genv" ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
DISTRO="$1"
|
DISTRO="$1"
|
||||||
PRESET="$2"
|
PRESET="$2"
|
||||||
|
|
||||||
if [ -z "$DISTRO" ] || [ -z "$PRESET" ]; then
|
if [ -z "$DISTRO" ] || [ -z "$PRESET" ]; then
|
||||||
echo "Usage: genv <distro> <preset>"
|
echo "Usage: genv <distro> <preset>"
|
||||||
exit 1
|
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
|
fi
|
||||||
|
|
||||||
PROJECT=$(basename "$PWD")
|
# tmux workflow
|
||||||
BOX="genv-$PROJECT"
|
if [ -z "$TMUX" ]; then
|
||||||
|
tmux new-session -A -s "$GENV_BOX" \
|
||||||
# distro mapping
|
\; new-window -n editor "nvim" \
|
||||||
case "$DISTRO" in
|
\; new-window -n dev "distrobox enter $GENV_BOX"
|
||||||
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
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
mkdir -p .genv
|
echo "[genv] fertig → direnv allow"
|
||||||
|
|
||||||
# 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
|
in
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
profile = import ../profile.nix;
|
profile = import ../profile.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
texliveMedium
|
texliveMedium
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user