aboutsummaryrefslogtreecommitdiff
path: root/home-manager
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--home-manager/browser/default.nix75
-rw-r--r--home-manager/default.nix61
-rw-r--r--home-manager/dotfiles/default.nix32
-rw-r--r--home-manager/git/default.nix15
-rw-r--r--home-manager/gnupg/default.nix9
-rw-r--r--home-manager/gtk/default.nix33
-rw-r--r--home-manager/kanshi/default.nix6
-rw-r--r--home-manager/ssh-agent/default.nix34
-rw-r--r--home-manager/waybar/default.nix6
-rw-r--r--home-manager/xdg/default.nix42
-rw-r--r--home-manager/zsh/default.nix125
11 files changed, 438 insertions, 0 deletions
diff --git a/home-manager/browser/default.nix b/home-manager/browser/default.nix
new file mode 100644
index 0000000..ab8278a
--- /dev/null
+++ b/home-manager/browser/default.nix
@@ -0,0 +1,75 @@
+{ config, pkgs, inputs, ... }:
+{
+ imports = [
+ inputs.zen-browser.homeModules.beta
+ ];
+
+ programs.zen-browser = {
+ enable = true;
+
+ nativeMessagingHosts = [pkgs.firefoxpwa];
+ policies = {
+ # find more options here: https://mozilla.github.io/policy-templates/
+ AutofillAddressEnabled = false;
+ AutofillCreditCardEnabled = false;
+
+ Cookies = {
+ Locked = true;
+ Behavior = "reject-foreign";
+ BehaviorPrivateBrowsing = "reject";
+ };
+
+ DisablePocket = true;
+ DisableAppUpdate = true;
+ DisableFirefoxStudies = true;
+ DisableFirefoxAccounts = true;
+ DisableFeedbackCommands = true;
+ DisableTelemetry = true;
+
+ DontCheckDefaultBrowser = true;
+
+ DownloadDirectory = "${config.home.homeDirectory}/downloads";
+
+ EnableTrackingProtection = {
+ Value = true;
+ Locked = true;
+ Cryptomining = true;
+ Fingerprinting = true;
+ };
+
+ HardwareAcceleration = true;
+
+ HttpsOnlyMode = "force_enabled";
+
+ NoDefaultBookmarks = true;
+
+ OfferToSaveLogins = false;
+
+ PasswordManagerEnabled = false;
+
+ PopupBlocking = {
+ Default = false;
+ Locked = true;
+ };
+
+ PostQuantumKeyAgreementEnabled = false;
+
+ SanitizeOnShutdown = {
+ Cache = true;
+ Cookies = false;
+ FormData = true;
+ History = false;
+ Sessions = false;
+ SiteSettings = true;
+ };
+
+ SearchEngines = {
+ Default = "Startpage";
+ Remove = [
+ "Google"
+ "Bing"
+ ];
+ };
+ };
+ };
+}
diff --git a/home-manager/default.nix b/home-manager/default.nix
new file mode 100644
index 0000000..78d085f
--- /dev/null
+++ b/home-manager/default.nix
@@ -0,0 +1,61 @@
+{ pkgs, system, inputs, ...}:
+{
+ imports = [
+ ./browser
+ ./dotfiles
+ ./git
+ ./gnupg
+ ./gtk
+ ./kanshi
+ ./ssh-agent
+ # ./waybar
+ ./xdg
+ ./zsh
+ ];
+
+ home = {
+ username = "aethrvmn";
+ homeDirectory = "/home/aethrvmn";
+
+ # DO NOT TOUCH THIS
+ stateVersion = "24.11";
+
+ packages = with pkgs; [
+ bat
+ bemenu
+ btop
+ chayang
+ electrum
+ eza
+ faircamp
+ fastfetch
+ featherpad
+ feishin
+ ghostty
+ gitui
+ grim
+ hugo
+ imv
+ j4-dmenu-desktop
+ mako
+ marksman
+ monero-gui
+ mpv
+ pavucontrol
+ slurp
+ swappy
+ wbg
+ wlr-randr
+
+ inputs.waybar.packages."${system}".default
+ ];
+
+ pointerCursor = {
+ gtk.enable = true;
+ x11.enable = true;
+ name = "Qogir";
+ package = pkgs.qogir-icon-theme;
+ size = 24;
+ };
+ };
+}
diff --git a/home-manager/dotfiles/default.nix b/home-manager/dotfiles/default.nix
new file mode 100644
index 0000000..875c110
--- /dev/null
+++ b/home-manager/dotfiles/default.nix
@@ -0,0 +1,32 @@
+{ config, pkgs, ... }:
+ let
+ ghosttyPath = "${config.home.homeDirectory}/.nix/dotfiles/ghostty";
+ helixPath = "${config.home.homeDirectory}/.nix/dotfiles/helix";
+ labwcPath = "${config.home.homeDirectory}/.nix/dotfiles/labwc";
+ makoPath = "${config.home.homeDirectory}/.nix/dotfiles/mako";
+ swappyPath = "${config.home.homeDirectory}/.nix/dotfiles/swappy";
+ waybarPath = "${config.home.homeDirectory}/.nix/dotfiles/waybar";
+
+ # theming
+ themesPath = "${config.home.homeDirectory}/.nix/dotfiles/themes";
+ fontPath = "${config.home.homeDirectory}/.nix/dotfiles/fonts";
+ in {
+ xdg = {
+ configFile = {
+ # configFile points to ~/.config
+ "ghostty".source = config.lib.file.mkOutOfStoreSymlink ghosttyPath;
+ "helix".source = config.lib.file.mkOutOfStoreSymlink helixPath;
+ "labwc".source = config.lib.file.mkOutOfStoreSymlink labwcPath;
+ "mako".source = config.lib.file.mkOutOfStoreSymlink makoPath;
+ "swappy".source = config.lib.file.mkOutOfStoreSymlink swappyPath;
+ "waybar".source = config.lib.file.mkOutOfStoreSymlink waybarPath;
+ };
+
+ dataFile = {
+ # dataFile points to ~/.local/share
+ "themes".source = config.lib.file.mkOutOfStoreSymlink themesPath;
+ "fonts".source = config.lib.file.mkOutOfStoreSymlink fontPath;
+ };
+ };
+ }
+
diff --git a/home-manager/git/default.nix b/home-manager/git/default.nix
new file mode 100644
index 0000000..dac2b35
--- /dev/null
+++ b/home-manager/git/default.nix
@@ -0,0 +1,15 @@
+{ config, pkgs, ... }:
+
+{
+ programs.git = {
+ enable = true;
+
+ userName = "aethrvmn";
+ userEmail = "me@aethrvmn.gr";
+
+ signing = {
+ key = "2DEC 190B 26C6 188E 5951 66AA 0F0C D756 AA91 0DB6";
+ signByDefault = true;
+ };
+ };
+}
diff --git a/home-manager/gnupg/default.nix b/home-manager/gnupg/default.nix
new file mode 100644
index 0000000..c415bca
--- /dev/null
+++ b/home-manager/gnupg/default.nix
@@ -0,0 +1,9 @@
+{
+ programs.gpg = {
+ enable = true;
+
+ settings = {
+ default-key = "2DEC 190B 26C6 188E 5951 66AA 0F0C D756 AA91 0DB6";
+ };
+ };
+}
diff --git a/home-manager/gtk/default.nix b/home-manager/gtk/default.nix
new file mode 100644
index 0000000..fceae3f
--- /dev/null
+++ b/home-manager/gtk/default.nix
@@ -0,0 +1,33 @@
+{ config, pkgs, ... }:
+{
+ dconf = {
+ enable = true;
+ settings = {
+ "org/gnome/desktop/interface" = {
+ color-scheme = "prefer-dark";
+ };
+ };
+ };
+
+ gtk = {
+ enable = true;
+
+ theme = {
+ name = "Qogir";
+ package = pkgs.qogir-theme;
+ };
+
+ iconTheme = {
+ name = "Qogir";
+ package = pkgs.qogir-icon-theme;
+ };
+
+ gtk3.extraConfig = {
+ gtk-application-prefer-dark-theme = 1;
+ };
+
+ gtk4.extraConfig = {
+ gtk-application-prefer-dark-theme = 1;
+ };
+ };
+}
diff --git a/home-manager/kanshi/default.nix b/home-manager/kanshi/default.nix
new file mode 100644
index 0000000..a6ffb0d
--- /dev/null
+++ b/home-manager/kanshi/default.nix
@@ -0,0 +1,6 @@
+{
+ services.kanshi = {
+ enable = true;
+ };
+}
+
diff --git a/home-manager/ssh-agent/default.nix b/home-manager/ssh-agent/default.nix
new file mode 100644
index 0000000..ae22c8f
--- /dev/null
+++ b/home-manager/ssh-agent/default.nix
@@ -0,0 +1,34 @@
+{
+ programs.ssh = {
+ enable = true;
+ addKeysToAgent = "yes";
+
+ extraConfig = ''
+ IdentitiesOnly yes
+ '';
+
+ matchBlocks = {
+ "aethrvmn.gr" = {
+ hostname = "aethrvmn.gr";
+ identityFile = "~/.ssh/connections";
+ };
+
+ "apo.theke.ml" = {
+ hostname = "apo.theke.ml";
+ user = "git";
+ port = 222;
+ identityFile = "~/.ssh/theke";
+ };
+
+ "code.aethrvmn.gr" = {
+ hostname = "code.aethrvmn.gr";
+ identityFile = "~/.ssh/commits";
+ };
+
+ "velor.gr" = {
+ hostname = "velor.gr";
+ identityFile = "~/.ssh/velor";
+ };
+ };
+ };
+}
diff --git a/home-manager/waybar/default.nix b/home-manager/waybar/default.nix
new file mode 100644
index 0000000..9457d06
--- /dev/null
+++ b/home-manager/waybar/default.nix
@@ -0,0 +1,6 @@
+{ config, pkgs, ...}:
+# {
+# programs.waybar = {
+# enable = true;
+# };
+# }
diff --git a/home-manager/xdg/default.nix b/home-manager/xdg/default.nix
new file mode 100644
index 0000000..55dde61
--- /dev/null
+++ b/home-manager/xdg/default.nix
@@ -0,0 +1,42 @@
+{
+ xdg = {
+ enable = true;
+ mimeApps = {
+ enable = true; # manage ~/.config/mimeapps.list
+
+ defaultApplications = {
+ "application/pdf" = [ "zen" ];
+ "x-scheme-handler/http" = [ "zen" ];
+ "x-scheme-handler/https" = [ "zen" ];
+ "x-scheme-handler/chrome" = [ "zen" ];
+
+ "text/html" = [ "featherpad.desktop" ];
+
+ "x-scheme-handler/discord" = [ "io.github.equicord.equibop.desktop" ];
+
+ "x-scheme-handler/tg" = [ "org.telegram.desktop.desktop" ];
+ "x-scheme-handler/tonsite" = [ "org.telegram.desktop.desktop" ];
+
+ "message/rfc822" = [ "eu.betterbird.Betterbird.desktop" ];
+ "x-scheme-handler/mailto" = [ "eu.betterbird.Betterbird.desktop" ];
+ "x-scheme-handler/mid" = [ "eu.betterbird.Betterbird.desktop" ];
+ "x-scheme-handler/feed" = [ "eu.betterbird.Betterbird.desktop" ];
+ "x-scheme-handler/webcal" = [ "eu.betterbird.Betterbird.desktop" ];
+ "x-scheme-handler/webcals" = [ "eu.betterbird.Betterbird.desktop" ];
+
+ "image/png" = [ "imv-dir.desktop" ];
+ "image/jpeg" = [ "imv-dir.desktop" ];
+ "image/svg+xml" = [ "featherpad.desktop" ];
+
+ "application/pgp-keys" = [ "com.bktus.gpgfrontend" ];
+ "application/octet-stream" = [ "org.gnome.FileRoller.desktop" ];
+ };
+
+ # Optional extra handlers that *don’t* become default
+ associations.added = {
+ "text/html" = [ "zen" ];
+ "application/pdf" = [ "zen" ];
+ };
+ };
+ };
+}
diff --git a/home-manager/zsh/default.nix b/home-manager/zsh/default.nix
new file mode 100644
index 0000000..d713873
--- /dev/null
+++ b/home-manager/zsh/default.nix
@@ -0,0 +1,125 @@
+{ config, pkgs, lib, ... }: let
+ nixosScript = ''
+ nixos() {
+ case $1 in
+ update | up)
+ if [ "$#" -gt 1 ]; then
+ echo "Error: 'nixos update' takes no additional arguments."
+ return 1
+ fi
+ nh os switch $HOME/.nix --ask
+ ;;
+ upgrade)
+ if [ "$#" -gt 1 ]; then
+ echo "Error: 'nixos upgrade' takes no additional arguments."
+ return 1
+ fi
+ nh os switch $HOME/.nix -u --ask
+ ;;
+ clean)
+ nh clean all --verbose
+ ;;
+ config)
+ hx ~/.nix/"$2"
+ ;;
+ *)
+ echo "Usage: nixos update | up || nixos upgrade || nixos config <path>"
+ ;;
+ esac
+ }
+
+ nix() {
+ if [[ $1 == "develop" ]]; then
+ shift
+ local flake
+ case $1 in
+ python)
+ flake="$HOME/.nix#python"
+ shift
+ ;;
+ nim)
+ flake="$HOME/.nix#nim"
+ shift
+ ;;
+ js)
+ flake="$HOME/.nix#js"
+ shift
+ ;;
+ *)
+ flake="$1"
+ shift
+ ;;
+ esac
+ command nix develop "$flake" -c zsh
+ else
+ command nix "$@"
+ fi
+ }
+
+ _nixos_autocomplete() {
+ _arguments \
+ '1: :->subcmd' \
+ '2: :->files'
+
+ case $state in
+ subcmd)
+ local -a commands
+ commands=("update" "config")
+ _describe 'command' commands
+ ;;
+ files)
+ # Check if the subcommand is config.
+ if [[ $words[2] == "config" ]]; then
+ _files -W "$HOME/.nix" -g '*'
+ fi
+ ;;
+ esac
+ }
+
+ compdef _nixos_autocomplete nixos
+ '';
+in {
+ programs.zsh = {
+ enable = true;
+
+ autosuggestion.enable = true;
+ enableCompletion = true;
+ syntaxHighlighting.enable = true;
+
+ shellAliases = {
+ ls = "eza --icons=always --color=always";
+ ll = "eza -a --long --icons=always --color=always --no-time";
+ lt = "eza -a --long --tree --icons=always --color=always --no-time";
+
+ cat = "bat";
+ mk = "(){ mkdir -p $1 && cd $1 }";
+
+ grep = "grep --color=auto";
+
+ mv = "mv -i";
+ cp = "cp -i";
+ rm = "rm -i";
+
+ fetch = "fastfetch -c examples/7";
+
+ nix-shell = "nix-shell --run $SHELL";
+ };
+
+ initContent = ''
+ ${nixosScript};
+ eval "$(atuin init zsh)"
+ eval "$(starship init zsh)"
+ '';
+ };
+
+ programs = {
+ starship = {
+ enable = true;
+ };
+
+ atuin = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+ };
+}
Directive (EU) 2019/790, Article 4(3); all rights regarding Text and Data Mining (TDM) are reserved.