From 0409a4db26a35e01941f40e318180d1ea1bfcb73 Mon Sep 17 00:00:00 2001 From: Hadi <112569860+anotherhadi@users.noreply.github.com> Date: Wed, 26 Mar 2025 16:01:34 +0100 Subject: [PATCH] improve documentation --- home/programs/discord/default.nix | 1 + home/programs/fetch/neofetch/default.nix | 1 + home/programs/fetch/nerdfetch/default.nix | 2 + home/programs/git/default.nix | 1 + home/programs/kitty/default.nix | 1 + home/programs/lazygit/default.nix | 1 + home/programs/qutebrowser/default.nix | 2 +- .../qutebrowser/duckduckgo-colorscheme.nix | 44 ---------- home/programs/tailscale/default.nix | 2 + home/programs/zen/default.nix | 85 +------------------ home/scripts/system/default.nix | 1 + home/system/hyprland/hyprspace.nix | 1 + home/system/hyprland/polkitagent.nix | 1 + nixos/grub.nix | 55 ------------ nixos/sddm.nix | 1 + nixos/tailscale.nix | 1 + nixos/tuigreet.nix | 2 + nixos/utils.nix | 28 +++--- 18 files changed, 35 insertions(+), 195 deletions(-) delete mode 100644 home/programs/qutebrowser/duckduckgo-colorscheme.nix delete mode 100644 nixos/grub.nix diff --git a/home/programs/discord/default.nix b/home/programs/discord/default.nix index c30fa20..5560d5b 100644 --- a/home/programs/discord/default.nix +++ b/home/programs/discord/default.nix @@ -1,3 +1,4 @@ +# Discord is a popular chat application. { inputs, ... }: { imports = [ inputs.nixcord.homeManagerModules.nixcord ]; diff --git a/home/programs/fetch/neofetch/default.nix b/home/programs/fetch/neofetch/default.nix index 96846db..b5838ed 100644 --- a/home/programs/fetch/neofetch/default.nix +++ b/home/programs/fetch/neofetch/default.nix @@ -1,3 +1,4 @@ +# Legacy { pkgs, ... }: { home.packages = with pkgs; [ neofetch ]; diff --git a/home/programs/fetch/nerdfetch/default.nix b/home/programs/fetch/nerdfetch/default.nix index eb70990..95c1316 100644 --- a/home/programs/fetch/nerdfetch/default.nix +++ b/home/programs/fetch/nerdfetch/default.nix @@ -1,3 +1,5 @@ +# Nerdfetch, a simple system info script written in bash +# Source: https://github.com/ThatOneCalculator/NerdFetch { pkgs, ... }: let nerdfetch = pkgs.writeShellScriptBin "nerdfetch" '' diff --git a/home/programs/git/default.nix b/home/programs/git/default.nix index 2e7ffcd..f4147fe 100644 --- a/home/programs/git/default.nix +++ b/home/programs/git/default.nix @@ -1,3 +1,4 @@ +# Git configuration { config, ... }: let username = config.var.git.username; diff --git a/home/programs/kitty/default.nix b/home/programs/kitty/default.nix index dc68558..013f144 100644 --- a/home/programs/kitty/default.nix +++ b/home/programs/kitty/default.nix @@ -1,3 +1,4 @@ +# Kitty is a fast, featureful, GPU based terminal emulator { programs.kitty = { enable = true; diff --git a/home/programs/lazygit/default.nix b/home/programs/lazygit/default.nix index 88d4e5d..a663218 100644 --- a/home/programs/lazygit/default.nix +++ b/home/programs/lazygit/default.nix @@ -1,3 +1,4 @@ +# Lazygit is a simple terminal UI for git commands. { config, lib, ... }: let accent = "#${config.lib.stylix.colors.base0D}"; diff --git a/home/programs/qutebrowser/default.nix b/home/programs/qutebrowser/default.nix index 5a9fbda..d0e7f4a 100644 --- a/home/programs/qutebrowser/default.nix +++ b/home/programs/qutebrowser/default.nix @@ -80,7 +80,7 @@ let in { - imports = [ ./duckduckgo-colorscheme.nix ]; + imports = [ ../duckduckgo-colorscheme ]; programs.qutebrowser = { enable = true; diff --git a/home/programs/qutebrowser/duckduckgo-colorscheme.nix b/home/programs/qutebrowser/duckduckgo-colorscheme.nix deleted file mode 100644 index e395b46..0000000 --- a/home/programs/qutebrowser/duckduckgo-colorscheme.nix +++ /dev/null @@ -1,44 +0,0 @@ -# A duckduckgo colorscheme generated for the Stylix theme used. -{ config, ... }: -let - accent = config.lib.stylix.colors.base0D; - background = config.lib.stylix.colors.base00; - foreground = config.lib.stylix.colors.base05; - background-alt = config.lib.stylix.colors.base01; - foreground-alt = config.lib.stylix.colors.base06; -in { - home.file.".duckduckgo-colorscheme.js".text = - # js - '' - // Go to DuckDuckGo settings page, open the console, paste the code and hit enter. - // based on https://ddg.codingcodax.dev/ - // Cookies string for your theme - const cookie = '7=${background}; j=${background}; 9=${foreground}; aa=${foreground-alt}; 8=${foreground}; x=${accent}; 21=${background-alt};'; - - // Converts cookie string into formatted JSON - const cookieToJSON = (cookieRaw) => { - const cookieJson = {}; - const items = cookieRaw.split(/[ ,]+/); - - items.forEach((item) => { - const parts = item.split('='); - cookieJson[parts[0]] = parts[1]; - }); - - return cookieJson; - }; - - // Iterates over JSON, and adds to browser cookie store - const setCookies = (cookieJson) => { - Object.keys(cookieJson).forEach((key) => { - document.cookie = `''${key}=''${cookieJson [ key ]}`; - }); - }; - - // Call set cookies, passing in formated cookie data - setCookies(cookieToJSON(cookie)); - - // All done, reload page for changes to take effect :) - location.reload(); - ''; -} diff --git a/home/programs/tailscale/default.nix b/home/programs/tailscale/default.nix index 3d7cac5..cca594e 100644 --- a/home/programs/tailscale/default.nix +++ b/home/programs/tailscale/default.nix @@ -1,3 +1,5 @@ +# Tailscale is a VPN service that works on top of WireGuard. +# It allows me to access my servers and devices from anywhere. { pkgs, ... }: { home.packages = with pkgs; [ tailscale tailscale-systray ]; diff --git a/home/programs/zen/default.nix b/home/programs/zen/default.nix index b87e9a2..dc361c4 100644 --- a/home/programs/zen/default.nix +++ b/home/programs/zen/default.nix @@ -1,86 +1,5 @@ -{ pkgs, config, inputs, ... }: -let - accent = "#${config.lib.stylix.colors.base0D}"; - background = "#${config.lib.stylix.colors.base00}"; - foreground = "#${config.lib.stylix.colors.base05}"; - muted = "#${config.lib.stylix.colors.base03}"; - - settings = '' - { - "config": { - "title" : "Welcome Home", - "openLinksInNewTab": false, - "locale": "fr-FR", - "colors": { - "primary": "${accent}", - "background": "${background}", - "foreground": "${foreground}", - "muted": "#${muted}" - }, - "folders": [ - { - "name": "Bookmarks", - "links": [ - {"title": "MyNixOs", "url": "https://mynixos.com", "icon": "󱄅"}, - {"title": "Github", "url": "https://github.com", "icon": ""}, - {"title": "Proton", "url": "https://mail.proton.me/u/0/inbox", "icon": ""}, - {"title": "Cloudflare One", "url": "https://one.dash.cloudflare.com/", "icon": ""}, - {"title": "Chat GPT", "url": "https://chat.openai.com/", "icon": "󰭹"}, - {"title": "Nixvim", "url": "https://nix-community.github.io/nixvim/", "icon": ""}, - {"title": "Hyprland Wiki", "url": "https://wiki.hyprland.org/", "icon": "󰖬"}, - {"title": "Youtube", "url": "https://youtube.com", "icon": "󰗃"}, - {"title": "Figma", "url": "https://figma.com", "icon": ""}, - {"title": "Server", "url": "https://home.anotherhadi.com", "icon": ""} - ] - }, - { - "name": "Work", - "links": [ - {"title": "Outlook", "url": "https://outlook.office.com/mail/", "icon": "󰴢"}, - {"title": "Office", "url": "https://www.office.com/?auth=2", "icon": "󰏆"}, - {"title": "Teams", "url": "https://teams.microsoft.com/_", "icon": "󰊻"} - ] - } - ] - } - } - ''; - - homepage = pkgs.buildNpmPackage { - pname = "homepage"; - version = "0.0.0"; - - src = pkgs.fetchFromGitHub { - owner = "anotherhadi"; - repo = "homepage"; - rev = "b77d35ed3596eb451bd2ec78063d7cc6e73c773d"; - hash = "sha256-j/40922kfAh6zqJ4IRYpr66YXNNYsxuXwZ0aiJFJea0="; - }; - - # npmDepsHash = lib.fakeHash; - npmDepsHash = "sha256-bG+CHTq2Rst3JMxsjAC81KhK+G7WwsTVD1eyP87g0z4="; - - buildPhase = '' - npm install - cp ${ - pkgs.writeText "src/routes/config.json" settings - } src/routes/config.json - npm run build - mkdir $out - mv build $out - ''; - - meta = { - description = "homepage"; - homepage = "https://github.com/anotherhadi/homepage"; - }; - }; -in { - home.file.".config/homepage" = { - source = "${homepage}/build"; - recursive = true; - }; - +# Zen is a minimalistic web browser. +{ pkgs, inputs, ... }: { home.packages = with pkgs; [ inputs.zen-browser.packages."${system}".default ]; } diff --git a/home/scripts/system/default.nix b/home/scripts/system/default.nix index 1abb3ce..621b3be 100644 --- a/home/scripts/system/default.nix +++ b/home/scripts/system/default.nix @@ -4,6 +4,7 @@ #- #- - `menu` - Open wofi with drun mode. (wofi) #- - `powermenu` - Open power dropdown menu. (wofi) +#- - `quickmenu` - Open a dropdown menu with shortcuts and scripts. (wofi) #- - `lock` - Lock the screen. (hyprlock) { pkgs, ... }: diff --git a/home/system/hyprland/hyprspace.nix b/home/system/hyprland/hyprspace.nix index 98a2893..b4f1725 100644 --- a/home/system/hyprland/hyprspace.nix +++ b/home/system/hyprland/hyprspace.nix @@ -1,3 +1,4 @@ +# Hyprspace is a hyprland plugin that provides a workspaces overview (three-finger swipe up) and a workspace switcher (three-finger down). { inputs, pkgs, ... }: { wayland.windowManager.hyprland = { plugins = [ inputs.hyprspace.packages.${pkgs.system}.Hyprspace ]; diff --git a/home/system/hyprland/polkitagent.nix b/home/system/hyprland/polkitagent.nix index 9bfa427..5558cd3 100644 --- a/home/system/hyprland/polkitagent.nix +++ b/home/system/hyprland/polkitagent.nix @@ -1,3 +1,4 @@ +# HyprPolkitAgent is a simple polkit agent for wayland compositors { pkgs, ... }: { home.packages = with pkgs; [ hyprpolkitagent ]; diff --git a/nixos/grub.nix b/nixos/grub.nix deleted file mode 100644 index 97106b4..0000000 --- a/nixos/grub.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ pkgs, config, ... }: { - stylix.targets.grub.enable = false; - - boot = { - bootspec.enable = true; - loader = { - efi.canTouchEfiVariables = true; - grub = { - enable = true; - devices = [ "nodev" ]; - efiSupport = true; - useOSProber = true; - }; - - grub2-theme = { - enable = true; - theme = "whitesur"; - icon = "whitesur"; - splashImage = config.stylix.image; - bootMenuConfig = '' - item_color = "#333333" - selected_item_color = "#000000" - left = 30% - top = 30% - width = 40% - height = 40% - item_font = "Unifont Regular 24" - icon_width = 48 - icon_height = 48 - item_icon_space = 24 - item_height = 56 - item_padding = 8 - item_spacing = 16 - selected_item_pixmap_style = "select_*.png" - ''; - }; - }; - - tmp.cleanOnBoot = true; - kernelPackages = - pkgs.linuxPackages_latest; # _zen, _hardened, _rt, _rt_latest, etc. - - # Silent boot - kernelParams = [ - "quiet" - "splash" - "vga=current" - "rd.systemd.show_status=false" - "rd.udev.log_level=3" - "udev.log_priority=3" - ]; - consoleLogLevel = 0; - initrd.verbose = false; - }; -} diff --git a/nixos/sddm.nix b/nixos/sddm.nix index 02d1239..3759651 100644 --- a/nixos/sddm.nix +++ b/nixos/sddm.nix @@ -1,3 +1,4 @@ +# SDDM is a display manager for X11 and Wayland { pkgs, inputs, config, lib, ... }: let foreground = config.theme.textColorOnWallpaper; diff --git a/nixos/tailscale.nix b/nixos/tailscale.nix index d06da58..2dd7370 100644 --- a/nixos/tailscale.nix +++ b/nixos/tailscale.nix @@ -1,3 +1,4 @@ +# Tailscale is a VPN service that makes it easy to connect your devices between each other. { config, ... }: { security.sudo.extraRules = [{ users = [ config.var.username ]; diff --git a/nixos/tuigreet.nix b/nixos/tuigreet.nix index a8747a4..775d802 100644 --- a/nixos/tuigreet.nix +++ b/nixos/tuigreet.nix @@ -1,3 +1,5 @@ +# TUIGreet is a display manager. +# Legacy, I'm now using SDDM { pkgs, ... }: { services.greetd = { enable = true; diff --git a/nixos/utils.nix b/nixos/utils.nix index b7c48a8..55e2674 100644 --- a/nixos/utils.nix +++ b/nixos/utils.nix @@ -3,6 +3,10 @@ let hostname = config.var.hostname; keyboardLayout = config.var.keyboardLayout; configDir = config.var.configDirectory; + timeZone = config.var.timeZone; + defaultLocale = config.var.defaultLocale; + extraLocale = config.var.extraLocale; + autoUpgrade = config.var.autoUpgrade; in { networking.hostName = hostname; @@ -10,7 +14,7 @@ in { systemd.services.NetworkManager-wait-online.enable = false; system.autoUpgrade = { - enable = config.var.autoUpgrade; + enable = autoUpgrade; dates = "04:00"; flake = "${configDir}"; flags = [ "--update-input" "nixpkgs" "--commit-lock-file" ]; @@ -18,20 +22,20 @@ in { }; time = { - timeZone = config.var.timeZone; + timeZone = timeZone; hardwareClockInLocalTime = true; }; - i18n.defaultLocale = config.var.defaultLocale; + i18n.defaultLocale = defaultLocale; i18n.extraLocaleSettings = { - LC_ADDRESS = config.var.extraLocale; - LC_IDENTIFICATION = config.var.extraLocale; - LC_MEASUREMENT = config.var.extraLocale; - LC_MONETARY = config.var.extraLocale; - LC_NAME = config.var.extraLocale; - LC_NUMERIC = config.var.extraLocale; - LC_PAPER = config.var.extraLocale; - LC_TELEPHONE = config.var.extraLocale; - LC_TIME = config.var.extraLocale; + LC_ADDRESS = extraLocale; + LC_IDENTIFICATION = extraLocale; + LC_MEASUREMENT = extraLocale; + LC_MONETARY = extraLocale; + LC_NAME = extraLocale; + LC_NUMERIC = extraLocale; + LC_PAPER = extraLocale; + LC_TELEPHONE = extraLocale; + LC_TIME = extraLocale; }; services = {