diff options
| author | aethrvmn <me@aethrvmn.gr> | 2025-08-31 14:21:34 +0000 |
|---|---|---|
| committer | aethrvmn <me@aethrvmn.gr> | 2025-08-31 14:21:34 +0000 |
| commit | bfd970a07c231b5781871c16cb4612eb4c6b8fd4 (patch) | |
| tree | 50a4ac5138d1f438e4d5bad3a3dd880a0784cd3e /home-manager | |
| parent | added flake (diff) | |
imported system/home-manager config
Diffstat (limited to 'home-manager')
| -rw-r--r-- | home-manager/browser/default.nix | 75 | ||||
| -rw-r--r-- | home-manager/default.nix | 61 | ||||
| -rw-r--r-- | home-manager/dotfiles/default.nix | 32 | ||||
| -rw-r--r-- | home-manager/git/default.nix | 15 | ||||
| -rw-r--r-- | home-manager/gnupg/default.nix | 9 | ||||
| -rw-r--r-- | home-manager/gtk/default.nix | 33 | ||||
| -rw-r--r-- | home-manager/kanshi/default.nix | 6 | ||||
| -rw-r--r-- | home-manager/ssh-agent/default.nix | 34 | ||||
| -rw-r--r-- | home-manager/waybar/default.nix | 6 | ||||
| -rw-r--r-- | home-manager/xdg/default.nix | 42 | ||||
| -rw-r--r-- | home-manager/zsh/default.nix | 125 |
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; + }; + }; +} |
