Compare commits

...

8 Commits

Author SHA1 Message Date
marc
e87b0ddd24 Added screenshots module 2025-10-05 18:23:02 +02:00
marc
18cfc610e1 Add anki 2025-10-05 15:43:21 +02:00
marc
7277d5b080 Add input modules (greek and japanese) 2025-10-05 15:43:04 +02:00
marc
ed00a90dda Better emoji support in emacs (+ other) 2025-09-20 16:48:38 +02:00
marc
97b58f141a Change theme 2025-09-20 16:47:58 +02:00
marc
d388d2192a Added cliphist and changed starship config 2025-06-01 22:57:57 +02:00
marc
41d47f6152 Use ghostty, starship and remove powerlevel 10k 2025-05-25 14:20:12 +02:00
marc
df6c1c9402 Upgrade to nixpkgs 25.05 2025-05-24 19:06:04 +02:00
27 changed files with 1041 additions and 2529 deletions

View File

@@ -12,20 +12,21 @@
;; Fonts
(setq doom-font (font-spec :family "Iosevka Nerd Font" :size 18))
(setq doom-symbol-font (font-spec :family "Iosevka Nerd Font" :size 18))
(setq doom-emoji-font (font-spec :family "Noto Color Emoji" :size 18))
;; Themeing
;; (use-package base16-theme
;; :init (add-to-list 'custom-theme-load-path "~/.config/doom/themes")
;; :ensure t
;; :config
;; (load-theme 'base16-samfelag t))
(after! doom-themes
(load-theme 'doom-nano-dark t))
(use-package! doom-nano-modeline
(use-package base16-theme
:init (add-to-list 'custom-theme-load-path "~/.config/doom/themes")
:ensure t
:config
(doom-nano-modeline-mode 1)
(global-hide-mode-line-mode 1))
(load-theme 'base16-samfelag t))
;; (after! doom-themes
;; (load-theme 'doom-nano-dark t))
;; (use-package! doom-nano-modeline
;; :config
;; (doom-nano-modeline-mode 1)
;; (global-hide-mode-line-mode 1))
;; Here are some additional functions/macros that could help you configure Doom:
;;
@@ -48,6 +49,18 @@
(setq-default tab-width 4)
;; -----------------------------------------------------------------------------
;; Emojify
;; -----------------------------------------------------------------------------
(use-package! emojify
:config
(when (member "Noto Color Emoji" (font-family-list))
(set-fontset-font
t 'emoji (font-spec :family "Noto Color Emoji") nil 'prepend))
(setq emojify-display-style 'image)
(setq emojify-emoji-styles '(unicode)))
;; -----------------------------------------------------------------------------
;; Projectile
;; -----------------------------------------------------------------------------

View File

@@ -30,7 +30,7 @@
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
;; doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂
(emoji +unicode) ; 🙂
;; fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra

View File

@@ -1,700 +0,0 @@
;;; doom-nano-dark-theme.el --- Dark theme for Doom Emacs based on N Λ N O -*- lexical-binding: t; -*-
;; Copyright (C) 2023 Ronan Arraes Jardim Chagas
;;
;; This package is the implementation of N Λ N O theme by Nicolas P. Rougier
;; <Nicolas.Rougier@inria.fr> using doom-themes framework.
;;
;; Author : Ronan Arraes Jardim Chagas
;; Created : February 2023
;; Keywords : mode-line, header-line
;; Package-Requires : ((emacs "28") (doom-themes "2"))
;; URL : https://github.com/ronisbr/doom-nano-themes/
;; Version : 0.2.3
;;
;;; Usage:
;; 1. Copy this file to `~/.doom.d/themes/' or `~/.config/doom/themes/`.
;; 2. Load the theme using `(setq doom-theme 'doom-nano-dark)'.
;;
;;; License:
;; Permission is hereby granted, free of charge, to any person obtaining
;; a copy of this software and associated documentation files (the
;; "Software"), to deal in the Software without restriction, including
;; without limitation the rights to use, copy, modify, merge, publish,
;; distribute, sublicense, and/or sell copies of the Software, and to
;; permit persons to whom the Software is furnished to do so, subject to
;; the following conditions:
;;
;; The above copyright notice and this permission notice shall be
;; included in all copies or substantial portions of the Software.
;;
;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
;; FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
;; THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;;
;;; Commentary:
;; This package provides a dark theme for Doom Emacs based on N Λ N O.
;;; Code:
(defgroup doom-nano-dark-theme nil
"Options for the `doom-nano-dark' theme."
:group 'doom-themes)
(defcustom doom-nano-dark-theme-highlight-tab-whitespaces nil
"If non-nil, the tab whitespaces will be highlighted."
:group 'doom-nano-dark-theme
:type 'boolean)
(def-doom-theme doom-nano-dark
"A dark theme for Doom Emacs based on N Λ N O."
(;; Colors defined by N Λ N O theme. Some colors for the 256 and 16 modes were
;; obtained from the Doom Nord theme.
(nano-foreground '("#ECEFF4" "#ECECEC" "white"))
(nano-background '("#2E3440" "#2E2E2E" "black"))
(nano-highlight '("#3B4252" "#262626" "brightblack"))
(nano-subtle '("#434C5E" "#3F3F3F" "brightblack"))
(nano-faded '("#677691" "#5699AF" "cyan"))
(nano-salient '("#81A1C1" "#51AFEF" "brightblue"))
(nano-strong '("#FFFFFF" "#FFFFFF" "brightwhite"))
(nano-popout '("#D08770" "#DD8844" "brightred"))
(nano-critical '("#EBCB8B" "#ECBE7B" "yellow"))
;; Required colors for a Doom theme.
(bg nano-background)
(fg nano-foreground)
(bg-alt nano-highlight)
(fg-alt nano-foreground)
(base0 '("#191C25" "black" "black" ))
(base1 '("#242832" "#1E1E1E" "brightblack" ))
(base2 '("#2C333F" "#2E2E2E" "brightblack" ))
(base3 '("#373E4C" "#262626" "brightblack" ))
(base4 '("#434C5E" "#3F3F3F" "brightblack" ))
(base5 '("#4C566A" "#525252" "brightblack" ))
(base6 '("#9099AB" "#6B6B6B" "brightblack" ))
(base7 '("#D8DEE9" "#979797" "brightblack" ))
(base8 '("#F0F4FC" "#DFDFDF" "white" ))
(bright-blue '("#BBDEFB" "#BBDEFB" "brightblue"))
(bright-cyan '("#B2EBF2" "#B2EBF2" "brightcyan"))
(bright-green '("#C8E6C9" "#C8E6C9" "brightgreen"))
(bright-magenta '("#E1BEE7" "#E1BEE7" "brightmagenta"))
(bright-red '("#FFCDD2" "#FFCDD2" "brightred"))
(bright-white nano-background)
(bright-yellow '("#FFF9C4" "#FFF9C4" "brightyellow"))
(blue '("#42A5F5" "#42A5F5" "blue"))
(cyan '("#26C6DA" "#26C6DA" "cyan"))
(dark-blue '("#A0BCF8" "#A0BCF8" "blue"))
(dark-cyan '("#005478" "#005478" "cyan"))
(green '("#66BB6A" "#66BB6A" "green"))
(grey base4)
(magenta '("#AB47BC" "#AB47BC" "magenta"))
(orange '("#DA8548" "#DD8844" "brightred"))
(red '("#EF5350" "#EF5350" "red"))
(teal '("#4DB5BD" "#44B9B1" "brightgreen"))
(violet '("#B751B6" "#B751B6" "brightmagenta"))
(white nano-subtle)
(yellow '("#FFEE58" "#FFEE58" "yellow"))
(highlight nano-highlight)
(vertical-bar nano-background)
(selection nano-subtle)
(builtin nano-salient)
(comments nano-faded)
(doc-comments nano-faded)
(constants nano-salient)
(functions nano-strong)
(keywords nano-salient)
(methods nano-strong)
(operators nano-salient)
(type nano-salient)
(strings nano-faded)
(variables nano-salient)
(numbers nano-salient)
(region nano-subtle)
(error nano-critical)
(warning nano-popout)
(success nano-salient)
(vc-modified nano-popout)
(vc-added nano-salient)
(vc-deleted nano-faded))
(;; Overwrite faces set by Doom theme framework.
;; === Base =================================================================
(cursor :foreground bg :background fg)
(mouse :foreground fg :background bg)
;; === General ==============================================================
(buffer-menu-buffer :foreground nano-strong :weight 'bold)
(completions-annotations :foreground nano-faded)
(completions-common-part :foreground nano-strong :weight 'bold)
(completions-first-difference :foreground fg)
(fill-column-indicator :foreground nano-subtle)
(help-argument-name :foreground nano-faded)
(isearch :foreground nano-strong :weight 'bold)
(isearch-fail :foreground nano-faded)
(lazy-highlight :background nano-subtle)
(minibuffer-prompt :foreground nano-strong :weight 'bold)
(nobreak-hyphen :foreground nano-popout)
(nobreak-space :foreground nano-popout)
(read-multiple-choice-face :foreground nano-strong :weight 'bold)
(secondary-selection :background nano-subtle)
(show-paren-match :foreground nano-strong :weight 'bold)
(show-paren-mismatch :foreground nano-critical)
(tabulated-list-fake-header :foreground nano-strong :weight 'bold)
(tool-bar :foreground bg :background nano-faded)
(tooltip :background nano-subtle)
(trailing-whitespace :background nano-subtle)
(whitespace-tab :background
(if doom-nano-dark-theme-highlight-tab-whitespaces
nano-subtle
bg))
;; === Ace window ===========================================================
(aw-leading-char-face :foreground nano-popout)
(aw-background-face :foreground nano-faded :background bg)
;; === ANSI colors ==========================================================
(ansi-color-black :foreground fg)
(ansi-color-bold :foreground nano-strong :weight 'bold)
(ansi-color-bright-black :foreground nano-strong :weight 'bold)
(ansi-color-faint :foreground nano-faded)
(ansi-color-fast-blink :foreground nano-faded)
(ansi-color-slow-blink :foreground nano-faded)
(ansi-color-inverse :foreground bg :background fg)
(ansi-color-italic :foreground fg :slant 'italic)
(ansi-color-underline :foreground nano-faded)
(ansi-color-blue :foreground blue)
(ansi-color-bright-blue :foreground bright-blue)
(ansi-color-cyan :foreground cyan)
(ansi-color-bright-cyan :foreground bright-cyan)
(ansi-color-green :foreground green)
(ansi-color-bright-green :foreground bright-green)
(ansi-color-magenta :foreground magenta)
(ansi-color-bright-magenta :foreground bright-magenta)
(ansi-color-red :foreground red)
(ansi-color-bright-red :foreground bright-red)
(ansi-color-white :foreground white)
(ansi-color-bright-white :foreground bright-white)
(ansi-color-yellow :foreground yellow)
(ansi-color-bright-yellow :foreground bright-yellow)
;; === Buttons ==============================================================
(button :foreground nano-faded :background nano-highlight :box nil)
((custom-button &override) :foreground nano-faded :background nano-highlight :box nil)
((custom-button-unraised &override) :foreground nano-faded :background nano-highlight :box nil)
((custom-button-mouse &override) :foreground fg :background nano-subtle :box nil)
((custom-button-pressed &override) :foreground bg :background fg :box nil)
;; === Custom edit ==========================================================
(custom-changed :foreground nano-salient)
(custom-comment :foreground nano-faded)
(custom-comment-tag :foreground nano-faded)
(custom-face-tag :foreground nano-strong :weight 'bold)
(custom-group-subtitle :foreground nano-strong :weight 'bold)
(custom-group-tag :foreground nano-strong :weight 'bold)
(custom-group-tag-1 :foreground nano-strong :weight 'bold)
(custom-invalid :foreground nano-popout)
(custom-link :foreground nano-salient)
(custom-modified :foreground nano-salient)
(custom-state :foreground nano-salient)
(custom-variable-obsolete :foreground nano-faded)
(custom-variable-tag :foreground nano-strong :weight 'bold)
(custom-visibility :foreground nano-salient)
(widget-button :foreground nano-strong :weight 'bold)
(widget-field :background base2)
(widget-single-line-field :background base2)
;; === Company tooltip ======================================================
(company-scrollbar-bg :foreground bg :background nano-faded)
(company-scrollbar-fg :foreground bg :background fg)
(company-tooltip :background nano-subtle)
(company-tooltip-annotation :foreground fg)
(company-tooltip-annotation-selection :background nano-salient)
(company-tooltip-common :foreground nano-strong :weight 'bold)
(company-tooltip-common-selection :foreground bg :background nano-salient :weight 'normal)
(company-tooltip-mouse :foreground bg :background nano-faded)
(company-tooltip-scrollbar-thumb :foreground bg :background fg)
(company-tooltip-scrollbar-track :foreground bg :foreground nano-faded)
(company-tooltip-selection :foreground bg :background nano-salient)
;; === Diff =================================================================
(diff-header :foreground nano-faded)
(diff-file :foreground nano-strong :weight 'bold)
(diff-context :foreground fg)
(diff-removed :foreground nano-faded)
(diff-changed :foreground nano-popout)
(diff-added :foreground nano-salient)
(diff-refine-added :foreground nano-salient :weight 'bold)
(diff-refine-changed :foreground nano-popout)
(diff-refine-removed :foreground nano-faded :strike-through t)
;; === Doom NANO modeline ===================================================
(doom-nano-modeline-evil-emacs-state-face :foreground bg :background nano-faded)
(doom-nano-modeline-evil-insert-state-face :foreground bg :background nano-popout)
(doom-nano-modeline-evil-motion-state-face :foreground bg :background nano-faded)
(doom-nano-modeline-evil-normal-state-face :foreground bg :background nano-faded)
(doom-nano-modeline-evil-operator-state-face :foreground bg :background nano-faded)
(doom-nano-modeline-evil-replace-state-face :foreground bg :background nano-critical)
(doom-nano-modeline-evil-visual-state-face :foreground bg :background nano-salient)
(doom-nano-modeline-inactive-face :foreground nano-faded :background nano-highlight)
;; === Evil mode ============================================================
(evil-snipe-first-match-face :background nano-highlight :weight 'bold)
(evil-snipe-matches-face :background nano-subtle)
;; === Flycheck =============================================================
(flycheck-posframe-background-face :background nano-subtle)
;; === Font lock ============================================================
(font-lock-variable-name-face :foreground nano-salient :weight 'bold)
(font-lock-function-name-face :foreground nano-strong :weight 'bold)
;; === Info =================================================================
(Info-quoted :foreground nano-faded)
(info-header-node :foreground fg)
(info-index-match :foreground nano-salient)
(info-menu-header :foreground nano-strong :weight 'bold)
(info-menu-star :foreground fg)
(info-node :foreground nano-strong :weight 'bold)
(info-title-1 :foreground nano-strong :weight 'bold)
(info-title-2 :foreground nano-strong :weight 'bold)
(info-title-3 :foreground nano-strong :weight 'bold)
(info-title-4 :foreground nano-strong :weight 'bold)
;; === Helpful ==============================================================
(helpful-heading :foreground nano-strong :weight 'bold)
;; === Highlight indent guides ==============================================
(highlight-indent-guides-f)
;; === Hydra ================================================================
(hydra-face-red :foreground nano-popout :weight 'bold)
;; === Line numbers =========================================================
(line-number :foreground nano-faded)
(line-number-current-line :foreground fg)
(line-number-major-tick :foreground nano-faded)
(line-number-minor-tick :foreground nano-faded)
;; === LSP ==================================================================
(lsp-face-highlight-textual :background base1)
;; === Markdown =============================================================
(markdown-blockquote-face :foreground fg)
(markdown-bold-face :foreground nano-strong :weight 'bold)
(markdown-code-face :foreground fg)
(markdown-comment-face :foreground nano-faded)
(markdown-footnote-marker-face :foreground fg)
(markdown-footnote-text-face :foreground fg)
(markdown-gfm-checkbox-face :foreground fg)
(markdown-header-delimiter-face :foreground nano-faded)
(markdown-header-face :foreground nano-strong :weight 'bold)
(markdown-header-face-1 :foreground nano-strong :weight 'bold)
(markdown-header-face-2 :foreground nano-strong :weight 'bold)
(markdown-header-face-3 :foreground nano-strong :weight 'bold)
(markdown-header-face-4 :foreground nano-strong :weight 'bold)
(markdown-header-face-5 :foreground nano-strong :weight 'bold)
(markdown-header-face-6 :foreground nano-strong :weight 'bold)
(markdown-header-rule-face :foreground fg)
(markdown-highlight-face :foreground fg)
(markdown-hr-face :foreground fg)
(markdown-html-attr-name-face :foreground fg)
(markdown-html-attr-value-face :foreground fg)
(markdown-html-entity-face :foreground fg)
(markdown-html-tag-delimiter-face :foreground fg)
(markdown-html-tag-name-face :foreground fg)
(markdown-inline-code-face :foreground nano-popout)
(markdown-italic-face :foreground nano-faded :slant 'italic)
(markdown-language-info-face :foreground fg)
(markdown-language-keyword-face :foreground fg)
(markdown-line-break-face :foreground fg)
(markdown-link-face :foreground nano-salient)
(markdown-link-title-face :foreground fg)
(markdown-list-face :foreground nano-faded)
(markdown-markup-face :foreground nano-faded)
(markdown-math-face :foreground fg)
(markdown-metadata-key-face :foreground nano-faded)
(markdown-metadata-value-face :foreground nano-faded)
(markdown-missing-link-face :foreground fg)
(markdown-plain-url-face :foreground fg)
(markdown-pre-face :foreground nano-popout)
(markdown-reference-face :foreground nano-salient)
(markdown-strike-through-face :foreground nano-faded)
(markdown-table-face :foreground fg)
(markdown-url-face :foreground nano-salient)
;; === Magit ================================================================
(magit-bisect-bad :foreground fg)
(magit-bisect-good :foreground fg)
(magit-bisect-skip :foreground fg)
(magit-blame-date :foreground fg)
(magit-blame-dimmed :foreground fg)
(magit-blame-hash :foreground nano-faded)
(magit-blame-heading :background nano-subtle :weight 'bold)
(magit-blame-highlight :background highlight)
(magit-blame-margin :foreground fg)
(magit-blame-name :foreground fg)
(magit-blame-summary :foreground fg)
(magit-branch-current :foreground nano-salient :weight 'bold)
(magit-branch-local :foreground nano-salient)
(magit-branch-remote :foreground nano-salient)
(magit-branch-remote-head :foreground nano-salient)
(magit-branch-upstream :foreground nano-salient)
(magit-cherry-equivalent :foreground fg)
(magit-cherry-unmatched :foreground fg)
(magit-diff-added :foreground nano-salient :weight 'bold)
(magit-diff-added-highlight :foreground nano-salient :weight 'bold)
(magit-diff-base :foreground fg)
(magit-diff-base-highlight :background highlight)
(magit-diff-conflict-heading :background nano-subtle :weight 'bold)
(magit-diff-context :foreground nano-faded)
(magit-diff-context-highlight :foreground nano-faded)
(magit-diff-file-heading :foreground nano-strong :weight 'bold)
(magit-diff-file-heading-highlight :background highlight :weight 'bold)
(magit-diff-file-heading-selection :foreground fg)
(magit-diff-hunk-heading :background nano-subtle)
(magit-diff-hunk-heading-highlight :foreground fg)
(magit-diff-hunk-heading-selection :foreground fg)
(magit-diff-hunk-region :foreground fg)
(magit-diff-lines-boundary :foreground fg)
(magit-diff-lines-heading :background nano-subtle :weight 'bold)
(magit-diff-our :foreground fg)
(magit-diff-our-highlight :background highlight)
(magit-diff-removed :foreground nano-popout :weight 'bold)
(magit-diff-removed-highlight :foreground nano-popout :weight 'bold)
(magit-diff-revision-summary :foreground nano-popout)
(magit-diff-revision-summary-highlight :foreground fg)
(magit-diff-their :foreground fg)
(magit-diff-their-highlight :background highlight)
(magit-diff-whitespace-warning :background nano-subtle)
(magit-diffstat-added :foreground fg)
(magit-diffstat-removed :foreground fg)
(magit-dimmed :foreground nano-faded)
(magit-filename :foreground fg)
(magit-hash :foreground nano-faded)
(magit-head :foreground fg)
(magit-header-line :foreground fg)
(magit-header-line-key :foreground fg)
(magit-header-line-log-select :foreground fg)
(magit-keyword :foreground nano-salient)
(magit-keyword-squash :foreground nano-salient)
(magit-log-author :foreground fg)
(magit-log-date :foreground fg)
(magit-log-graph :foreground fg)
(magit-mode-line-process :foreground fg)
(magit-mode-line-process-error :foreground nano-critical)
(magit-process-ng :foreground fg)
(magit-process-ok :foreground fg)
(magit-reflog-amend :foreground fg)
(magit-reflog-checkout :foreground fg)
(magit-reflog-cherry-pick :foreground fg)
(magit-reflog-commit :foreground fg)
(magit-reflog-merge :foreground fg)
(magit-reflog-other :foreground fg)
(magit-reflog-rebase :foreground fg)
(magit-reflog-remote :foreground fg)
(magit-reflog-reset :foreground fg)
(magit-refname :foreground fg)
(magit-refname-pullreq :foreground fg)
(magit-refname-stash :foreground fg)
(magit-refname-wip :foreground fg)
(magit-section-heading :foreground nano-salient :weight 'bold)
(magit-section-heading-selection :foreground fg)
(magit-section-highlight :background highlight)
(magit-section-secondary-heading :foreground fg)
(magit-sequence-done :foreground fg)
(magit-sequence-drop :foreground fg)
(magit-sequence-exec :foreground fg)
(magit-sequence-head :foreground fg)
(magit-sequence-onto :foreground fg)
(magit-sequence-part :foreground fg)
(magit-sequence-pick :foreground fg)
(magit-sequence-stop :foreground fg)
(magit-signature-bad :foreground fg)
(magit-signature-error :foreground fg)
(magit-signature-expired :foreground fg)
(magit-signature-expired-key :foreground fg)
(magit-signature-good :foreground fg)
(magit-signature-revoked :foreground fg)
(magit-signature-untrusted :foreground fg)
(magit-tag :foreground nano-strong)
;; === Marginalia ===========================================================
(marginalia-archive :foreground nano-faded)
(marginalia-char :foreground nano-faded)
(marginalia-date :foreground nano-faded)
(marginalia-documentation :foreground nano-faded)
(marginalia-file-name :foreground nano-faded)
(marginalia-file-owner :foreground nano-faded)
(marginalia-file-priv-dir :foreground nano-faded)
(marginalia-file-priv-exec :foreground nano-faded)
(marginalia-file-priv-link :foreground nano-faded)
(marginalia-file-priv-no :foreground nano-faded)
(marginalia-file-priv-other :foreground nano-faded)
(marginalia-file-priv-rare :foreground nano-faded)
(marginalia-file-priv-read :foreground nano-faded)
(marginalia-file-priv-write :foreground nano-faded)
(marginalia-function :foreground nano-faded)
(marginalia-installed :foreground nano-faded)
(marginalia-key :foreground nano-faded)
(marginalia-lighter :foreground nano-faded)
(marginalia-list :foreground nano-faded)
(marginalia-mode :foreground nano-faded)
(marginalia-modified :foreground nano-faded)
(marginalia-null :foreground nano-faded)
(marginalia-number :foreground nano-faded)
(marginalia-off :foreground nano-faded)
(marginalia-on :foreground nano-faded)
(marginalia-size :foreground nano-faded)
(marginalia-string :foreground nano-faded)
(marginalia-symbol :foreground nano-faded)
(marginalia-true :foreground nano-faded)
(marginalia-type :foreground nano-faded)
(marginalia-value :foreground nano-faded)
(marginalia-version :foreground nano-faded)
;; === Message ==============================================================
(message-cited-text :foreground nano-faded)
(message-cited-text-1 :foreground nano-faded)
(message-cited-text-2 :foreground nano-faded)
(message-cited-text-3 :foreground nano-faded)
(message-cited-text-4 :foreground nano-faded)
(message-header-cc :foreground fg)
(message-header-name :foreground nano-strong :weight 'bold)
(message-header-newsgroups :foreground fg)
(message-header-other :foreground fg)
(message-header-subject :foreground nano-salient)
(message-header-to :foreground nano-salient)
(message-header-xheader :foreground fg)
(message-mml :foreground nano-popout)
(message-separator :foreground nano-faded)
;; === Modeline =============================================================
(mode-line :foreground fg :background nano-subtle)
(mode-line-inactive :foreground nano-strong :background nano-highlight)
(mode-line-emphasis :foreground nano-strong :weight 'bold)
;; === Packages =============================================================
(package-description :foreground fg)
(package-help-section-name :foreground fg)
(package-name :foreground nano-salient)
(package-status-avail-obso :foreground nano-faded)
(package-status-available :foreground fg)
(package-status-built-in :foreground nano-salient)
(package-status-dependency :foreground nano-salient)
(package-status-disabled :foreground nano-faded)
(package-status-external :foreground fg)
(package-status-held :foreground fg)
(package-status-incompat :foreground nano-faded)
(package-status-installed :foreground nano-salient)
(package-status-new :foreground fg)
(package-status-unsigned :foreground fg)
;; === Orderless ============================================================
(orderless-match-face-0 :foreground nano-salient :weight 'bold)
(orderless-match-face-1 :foreground nano-strong :weight 'bold)
(orderless-match-face-2 :foreground nano-strong :weight 'bold)
(orderless-match-face-3 :foreground nano-strong :weight 'bold)
;; === Org mode =============================================================
(org-archived :foreground nano-faded)
(org-block :background highlight)
(org-block-begin-line :background nano-subtle :foreground nano-faded)
(org-block-end-line :background nano-subtle :foreground nano-faded)
(org-checkbox :foreground nano-faded)
(org-checkbox-statistics-done :foreground nano-faded)
(org-checkbox-statistics-todo :foreground nano-faded)
(org-clock-overlay :foreground nano-faded)
(org-code :foreground nano-salient)
(org-column :foreground nano-faded)
(org-column-title :foreground nano-faded)
(org-date :foreground nano-faded)
(org-date-selected :foreground nano-popout)
(org-default :foreground nano-faded)
(org-document-info :foreground nano-faded)
(org-document-info-keyword :foreground nano-faded)
(org-document-title :foreground nano-faded)
(org-done :foreground nano-faded)
(org-drawer :foreground nano-faded)
(org-ellipsis :foreground nano-faded)
(org-footnote :foreground nano-faded)
(org-formula :foreground nano-faded)
(org-headline-done :foreground nano-faded)
(org-latex-and-related :foreground nano-faded)
(org-level-1 :foreground nano-strong :weight 'bold)
(org-level-2 :foreground nano-strong :weight 'bold)
(org-level-3 :foreground nano-strong :weight 'bold)
(org-level-4 :foreground nano-strong :weight 'bold)
(org-level-5 :foreground nano-strong :weight 'bold)
(org-level-6 :foreground nano-strong :weight 'bold)
(org-level-7 :foreground nano-strong :weight 'bold)
(org-level-8 :foreground nano-strong :weight 'bold)
(org-link :foreground nano-salient)
(org-list-dt :foreground nano-faded)
(org-macro :foreground nano-faded)
(org-meta-line :foreground nano-faded)
(org-mode-line-clock :foreground nano-faded)
(org-mode-line-clock-overrun :foreground nano-faded)
(org-priority :foreground nano-faded)
(org-property-value :foreground nano-faded)
(org-quote :foreground nano-faded)
(org-scheduled :foreground nano-faded)
(org-scheduled-previously :foreground nano-faded)
(org-scheduled-today :foreground nano-faded)
(org-sexp-date :foreground nano-faded)
(org-special-keyword :foreground nano-faded)
(org-table :foreground nano-faded)
(org-tag :foreground nano-popout)
(org-tag-group :foreground nano-faded)
(org-target :foreground nano-faded)
(org-time-grid :foreground nano-faded)
(org-todo :foreground nano-salient)
(org-upcoming-deadline :foreground nano-popout)
(org-verbatim :foreground nano-popout)
(org-verse :foreground nano-faded)
(org-warning :foreground nano-popout)
;; === Org-agenda ===========================================================
(org-agenda-calendar-event :foreground fg)
(org-agenda-calendar-sexp :foreground nano-salient)
(org-agenda-clocking :foreground nano-faded)
(org-agenda-column-dateline :foreground nano-faded)
(org-agenda-current-time :foreground nano-salient :weight 'bold)
(org-agenda-date :foreground nano-strong :weight 'bold)
(org-agenda-date-today :foreground nano-salient :weight 'bold)
(org-agenda-date-weekend :foreground nano-faded)
(org-agenda-diary :foreground nano-faded)
(org-agenda-dimmed-todo-face :foreground nano-faded)
(org-agenda-done :foreground nano-faded)
(org-agenda-filter-category :foreground nano-faded)
(org-agenda-filter-effort :foreground nano-faded)
(org-agenda-filter-regexp :foreground nano-faded)
(org-agenda-filter-tags :foreground nano-faded)
(org-agenda-property-face :foreground nano-faded)
(org-agenda-restriction-lock :foreground nano-faded)
(org-agenda-structure :foreground nano-strong :weight 'bold)
;; === Popup ================================================================
(popup-face :foreground highlight)
(popup-isearch-match :foreground nano-popout)
(popup-menu-face :foreground nano-subtle)
(popup-menu-mouse-face :foreground bg :background nano-faded)
(popup-menu-selection-face :foreground bg :background nano-salient)
(popup-menu-summary-face :foreground nano-faded)
(popup-scroll-bar-background-face :foreground nano-subtle)
(popup-scroll-bar-foreground-face :foreground nano-subtle)
(popup-summary-face :foreground nano-faded)
(popup-tip-face :foreground bg :background nano-popout)
;; === Semantics ============================================================
(match :foreground nano-popout)
(shadow :foreground nano-faded)
;; === smerge ===============================================================
(smerge-lower :background bg)
(smerge-markers :background nano-subtle :weight 'bold :distant-foreground 'unspecified)
(smerge-refined-added :foreground nano-salient :weight 'bold)
(smerge-refined-changed :foreground nano-popout)
(smerge-refined-removed :foreground nano-faded :strike-through t)
(smerge-upper :background bg)
;; === Structural ===========================================================
(bold :foreground nano-strong :weight 'bold)
(bold-italic :foreground nano-strong :weight 'bold)
(fixed-pitch :foreground fg)
(fixed-pitch-serif :foreground fg)
(fringe :foreground nano-faded)
(hl-line :background highlight)
(italic :foreground nano-faded :slant 'italic)
(link :foreground nano-salient)
(region :background nano-subtle :distant-foreground 'unspecified)
;; === Terminal =============================================================
(term-bold :foreground nano-strong :weight 'bold)
(term-color-black :foreground fg)
(term-color-blue :foreground blue :background bright-blue)
(term-color-cyan :foreground cyan :background bright-cyan)
(term-color-green :foreground green :background bright-green)
(term-color-magenta :foreground magenta :background bright-magenta)
(term-color-red :foreground red :background bright-red)
(term-color-yellow :foreground yellow :background bright-yellow)
;; === Transient ============================================================
;; Set only faces that influence Magit.
(transient-value :foreground fg)
;; === Vertico ==============================================================
(vertico-current :background nano-subtle :weight 'bold)
(vertico-group-separator :foreground nano-faded)
(vertico-group-title :foreground nano-faded)
(vertico-multiline :foreground nano-faded)
;;; === Vterm ===============================================================
(vterm-color-black :foreground fg :background fg)
(vterm-color-blue :foreground blue :background bright-blue)
(vterm-color-cyan :foreground cyan :background bright-cyan)
(vterm-color-green :foreground green :background bright-green)
(vterm-color-magenta :foreground magenta :background bright-magenta)
(vterm-color-red :foreground red :background bright-red)
(vterm-color-yellow :foreground yellow :background bright-yellow)
(vterm-color-white :foreground white :background white)
;; === Workspaces ===========================================================
(+workspace-tab-selected-face :foreground nano-salient :weight 'bold)
;; === Which key ============================================================
(which-key-command-description-face :foreground fg)
(which-key-key-face :foreground nano-strong :weight 'bold)
(which-key-key-group-description-face :foreground nano-salient)))
(provide 'doom-nano-dark-theme)
;;; doom-nano-dark-theme.el ends here

View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -e
# Dependencies:
# - slurp
# - grim
ACTION=$1
DATESTAMP=$(date +"%Y%m%d%H%M%S")
OUT_DIR="${HOME}/screenshots"
OUT_FILE="capture-${ACTION}-${DATESTAMP}.png"
case $ACTION in
region)
[[ ! -d "${OUT_DIR}" ]] && mkdir $OUT_DIR
slurp | grim -t png -g - "${OUT_DIR}/${OUT_FILE}"
;;
screen)
[[ ! -d "${OUT_DIR}" ]] && mkdir $OUT_DIR
grim -t png "${OUT_DIR}/${OUT_FILE}"
;;
*)
echo "Unknown action"
exit 1
;;
esac

View File

@@ -0,0 +1,147 @@
/**
*
* Author : Marc Sastre, based on Aditya Shakya (adi1090x, Github : @adi1090x)
*
**/
@import "~/.config/rofi/theme.rasi"
/*****----- Configuration -----*****/
configuration {
show-icons: false;
}
/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 800px;
x-offset: 0px;
y-offset: 0px;
/* properties for all widgets */
enabled: true;
margin: 0px;
padding: 0px;
border: 2px solid;
border-radius: 15px;
border-color: @background-alt;
cursor: "default";
background-color: @background;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 15px;
margin: 0px;
padding: 30px;
border: 0px solid;
border-radius: 0px;
border-color: @selected;
background-color: transparent;
children: [ "inputbar", "listview" ];
}
message {
enabled: true;
margin: 0px;
padding: 10px;
border: 0px solid;
border-radius: 10px;
border-color: @selected;
background-color: @background-alt;
text-color: @foreground;
}
textbox {
background-color: inherit;
text-color: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
placeholder-color: @foreground;
blink: true;
markup: true;
}
/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
padding: 15px;
border-radius: 10px;
background-color: @background-alt;
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry" ];
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: "";
background-color: inherit;
text-color: inherit;
}
entry {
enabled: true;
background-color: inherit;
text-color: inherit;
cursor: text;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 1;
lines: 5;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 5px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @selected;
background-color: transparent;
text-color: @foreground;
cursor: "default";
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 0px;
margin: 0px;
padding: 12px;
border: 0px solid;
border-radius: 100%;
border-color: @selected;
background-color: transparent;
text-color: @foreground;
cursor: pointer;
}
element-text {
background-color: transparent;
text-color: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
element selected.normal {
background-color: var(selected);
text-color: var(background);
}
element active {
background-color: var(active);
text-color: var(background);
}
element selected.active {
background-color: var(selected);
text-color: var(background);
}

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# For debugging/development purposes
# PREFIX=projects/samfelag/config/
# Rofi command to pipe into, can add any options here
dir="$HOME/$PREFIX.config/rofi/menus/cliphist/"
theme='cliphist'
rofi_command="rofi -dmenu -i -theme ${dir}/${theme}.rasi"
cliphist list | $rofi_command | cliphist decode | wl-copy

File diff suppressed because it is too large Load Diff

502
flake.lock generated
View File

@@ -23,6 +23,39 @@
"type": "github"
}
},
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1747864449,
"narHash": "sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "389372c5f4dc1ac0e7645ed29a35fd6d71672ef5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"base16-schemes": {
"flake": false,
"locked": {
@@ -58,6 +91,44 @@
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -86,20 +157,69 @@
]
},
"locked": {
"lastModified": 1733050161,
"narHash": "sha256-lYnT+EYE47f5yY3KS/Kd4pJ6CO9fhCqumkYYkQ3TK20=",
"lastModified": 1747556831,
"narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "62d536255879be574ebfe9b87c4ac194febf47c5",
"rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"hy3": {
"inputs": {
"hyprland": [
"hyprland"
]
},
"locked": {
"lastModified": 1747077256,
"narHash": "sha256-ryaXKevnISRiJb93QIAv7tGc6ZJqSkwETKm4oGh8HWI=",
"owner": "outfoxxed",
"repo": "hy3",
"rev": "567dc9dd20e15d95a56a81c516a70dba30bc2c9c",
"type": "github"
},
"original": {
"owner": "outfoxxed",
"repo": "hy3",
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1745948457,
"narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "ac903e80b33ba6a88df83d02232483d99f327573",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprcursor-rose-pine": {
"inputs": {
"hyprlang": "hyprlang",
@@ -120,6 +240,187 @@
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1745015490,
"narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "60754910946b4e2dc1377b967b7156cb989c5873",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-protocols": "hyprland-protocols",
"hyprland-qtutils": "hyprland-qtutils",
"hyprlang": "hyprlang_2",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_4",
"xdph": "xdph"
},
"locked": {
"lastModified": 1748036495,
"narHash": "sha256-kYyrhoxu8pZ/YHd2Yy2VNaRGeqydOh1OTayvknhweGg=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "81cd526f923f4a9074bbfef59b4c7e9f3350c349",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-plugins": {
"inputs": {
"hyprland": [
"hyprland"
],
"nixpkgs": [
"hyprland-plugins",
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland-plugins",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1748089895,
"narHash": "sha256-XS2inFEyCsA91E2yRUlylHN7DUBwbLpqX1og4JDSXoE=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "c04dee3d0cd92423a2b970614ec4b423cf5a3f9c",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-plugins",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1743714874,
"narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprland-qt-support": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprland-qtutils",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"hyprland-qtutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-qtutils",
"systems"
]
},
"locked": {
"lastModified": 1737634706,
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"rev": "8810df502cdee755993cb803eba7b23f189db795",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"type": "github"
}
},
"hyprland-qtutils": {
"inputs": {
"hyprland-qt-support": "hyprland-qt-support",
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-qtutils",
"hyprlang",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1745951494,
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"nixpkgs": [
@@ -142,6 +443,85 @@
"type": "github"
}
},
"hyprlang_2": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1747484975,
"narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "163c83b3db48a17c113729c220a60b94596c9291",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1746635225,
"narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1747584298,
"narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
@@ -226,21 +606,37 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1732981179,
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
"owner": "nixos",
"lastModified": 1747744144,
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1747953325,
"narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "55d1f923c480dadce40f5231feb472e81b0bab48",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1727348695,
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
@@ -271,14 +667,40 @@
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1747372754,
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"agenix": "agenix",
"emacs-overlay": "emacs-overlay",
"home-manager": "home-manager_2",
"hy3": "hy3",
"hyprcursor-rose-pine": "hyprcursor-rose-pine",
"hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"nur": "nur",
"zen-browser": "zen-browser"
}
@@ -328,6 +750,21 @@
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems_3"
@@ -346,9 +783,50 @@
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1745871725,
"narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"nixpkgs": "nixpkgs_4"
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1739222645,

View File

@@ -4,10 +4,10 @@
inputs = {
# - Nixpkgs ----------------------------------
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
# - Home Manager -----------------------------
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# - Agenix -----------------------------------
@@ -26,6 +26,15 @@
nix-colors.url = "github:misterio77/nix-colors";
# - Hyprland ---------------------------------
hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
hy3 = {
url = "github:outfoxxed/hy3";
inputs.hyprland.follows = "hyprland";
};
hyprcursor-rose-pine.url = "github:ndom91/rose-pine-hyprcursor";
# - More stuff -------------------------------

View File

@@ -3,7 +3,7 @@
with lib;
let
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
wallpaper = ../../data/wallpapers/wallhaven/muntanya.png;
wallpaper = ../../data/wallpapers/globus.jpg;
in
{
imports = [
@@ -69,6 +69,11 @@ in
system.kanata.enable = true;
system.devices.voyager.enable = true;
system.input = {
japanese.enable = true;
greek.enable = true;
};
# - Desktop ----------------------------------
desktop = {
inherit wallpaper;
@@ -76,8 +81,8 @@ in
# Use Γραφείο (custom) desktop environment
grapheio.enable = true;
# Add greek keyboard layout
wm.hyprland.kb_layout = "es,gr";
# # Add greek keyboard layout -- currently commented as fcitx5 adds greek support
# wm.hyprland.kb_layout = "es,gr";
};
# - Editors and development ------------------
@@ -91,8 +96,9 @@ in
dev.docker.users = ["marc"];
# - Other apps -------------------------------
app.anki.enable = true;
app.spotify.enable = true;
app.skype.enable = true;
# app.skype.enable = true;
app.nextcloud.enable = true;
app.yazi.enable = true;

View File

@@ -18,7 +18,7 @@ in
fonts.packages = with pkgs; [
iosevka
(nerdfonts.override { fonts = [ "Iosevka" ]; })
pkgs.nerd-fonts.iosevka
];
hm.xdg.configFile."alacritty/alacritty.toml".source = ../../config/alacritty/alacritty.toml;

15
modules/app/anki.nix Normal file
View File

@@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.app.anki;
in
{
options.samfelag.modules.app.anki = {
enable = lib.mkEnableOption "anki";
};
config = lib.mkIf cfg.enable {
hm.home.packages = with pkgs; [
anki
];
};
}

44
modules/app/ghostty.nix Normal file
View File

@@ -0,0 +1,44 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.app.ghostty;
i3Cfg = config.samfelag.modules.desktop.wm.i3;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
in
{
options.samfelag.modules.app.ghostty = {
enable = lib.mkEnableOption "ghostty";
};
config = lib.mkIf cfg.enable {
hm.home.packages = with pkgs; [
ghostty
];
fonts.fontconfig.enable = true;
fonts.packages = with pkgs; [
iosevka
pkgs.nerd-fonts.iosevka
];
hm.xdg.configFile."ghostty/config".text = ''
background = "${config.colorScheme.palette.base00}"
foreground = "${config.colorScheme.palette.base05}"
font-family = "Iosevka Nerd Font"
background-opacity = 0.85
background-blur = true
'';
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Return" = "exec ${pkgs.ghostty}/bin/ghostty";
# "${i3Cfg.mod}+Shift+Return" = "exec ${pkgs.ghostty}/bin/ghostty -t floating-term";
};
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
"${hyprCfg.mod}, Return, exec, ${pkgs.ghostty}/bin/ghostty"
"${hyprCfg.mod} SHIFT, Return, exec, [float] ${pkgs.ghostty}/bin/ghostty"
];
};
}

View File

@@ -26,7 +26,7 @@ in
fonts.packages = with pkgs; [
iosevka
(nerdfonts.override { fonts = [ "Iosevka" ]; })
pkgs.nerd-fonts.iosevka
];

View File

@@ -27,7 +27,7 @@
# - Locale -------------------------------------
time.timeZone = "Europe/Madrid";
i18n.defaultLocale = "ca_ES.utf8";
i18n.defaultLocale = "ca_ES.UTF-8";
console.keyMap = "es";
services.xserver.xkb = {
layout = "es";

View File

@@ -113,11 +113,15 @@ in
rofi.enable = true;
# Notification center
swaync.enable = true;
# Clipboard manager (history)
cliphist.enable = true;
# Take screenshots
screenshot.enable = true;
};
};
app = {
alacritty.enable = true;
ghostty.enable = true;
zen-browser.enable = true;
};

View File

@@ -0,0 +1,36 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let
cfg = config.samfelag.modules.desktop.tools.cliphist;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
rofiCfg = config.samfelag.modules.desktop.tools.rofi;
in
{
options.samfelag.modules.desktop.tools.cliphist = {
enable = mkEnableOption "Clipboard history";
};
config = mkIf cfg.enable {
# - Clipboard manager ------------------------
hm.services.cliphist = {
enable = true;
extraOptions = [
"-max-dedupe-search"
"10"
"-max-items"
"500"
];
};
# - Hyprland keybindings ---------------------
hm.wayland.windowManager.hyprland.settings = lib.mkIf (hyprCfg.enable && rofiCfg.enable) {
bind = [
# Clipboard manager
"${hyprCfg.mod}, v, exec, $HOME/.config/rofi/menus/cliphist/cliphist.sh"
];
};
};
}

View File

@@ -12,9 +12,9 @@ in
config = mkIf cfg.enable {
# environment.systemPackages = with pkgs; [
# hypridle
# ];
environment.systemPackages = with pkgs; [
hypridle
];
hm.programs.hyprlock = {
enable = true;
@@ -107,9 +107,9 @@ in
};
# - Execute on startup -----------------------
# hm.wayland.windowManager.hyprland.settings.exec-once = [
# "hypridle"
# ];
hm.wayland.windowManager.hyprland.settings.exec-once = [
"hypridle"
];
};
}

View File

@@ -0,0 +1,31 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let
cfg = config.samfelag.modules.desktop.tools.screenshot;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
in
{
options.samfelag.modules.desktop.tools.screenshot = {
enable = mkEnableOption "Screenshot utilities";
};
config = mkIf cfg.enable {
# - Screenshot utilities ---------------------
environment.systemPackages = [
pkgs.slurp # to select the region
pkgs.grim # actual screenshot program
];
# - Hyprland keybindings ---------------------
hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable {
bind = [
# Screenshots
"${hyprCfg.mod}, s, exec, $HOME/.config/grapheio/scripts/screenshot.sh region"
"${hyprCfg.mod}, SHIFT s, exec, $HOME/.config/grapheio/scripts/screenshot.sh screen"
];
};
};
}

View File

@@ -24,13 +24,13 @@ in {
hm.wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
xwayland.enable = true;
systemd.enable = true;
plugins = [
pkgs.hyprlandPlugins.hy3
inputs.hy3.packages.${pkgs.stdenv.hostPlatform.system}.hy3
];
settings = {
@@ -109,8 +109,8 @@ in {
"${cfg.mod} SHIFT, 5, movetoworkspace, 5"
"${cfg.mod} SHIFT, 0, movetoworkspace, 6"
# - Keyboard ---------------------------
"${cfg.mod}, Escape, exec, hyprctl switchxkblayout current next"
# # - Keyboard ---------------------------
# "${cfg.mod}, Escape, exec, hyprctl switchxkblayout current next"
] ++ cfg.extraKeybindings;

View File

@@ -31,7 +31,7 @@ in {
fonts.packages = with pkgs; [
iosevka
(nerdfonts.override { fonts = [ "Iosevka" ]; })
pkgs.nerd-fonts.iosevka
];
services.xserver = {

View File

@@ -19,6 +19,11 @@ in
userName = cfg.userName;
userEmail = cfg.userEmail;
ignores = [
".direnv"
".project"
];
extraConfig = {
init.defaultBranch = "main";
};

View File

@@ -53,6 +53,7 @@ in {
fonts.packages = with pkgs; [
iosevka
emacs-all-the-icons-fonts
noto-fonts-color-emoji
];
env.PATH = [ "$HOME/.config/emacs/bin" ];
@@ -63,34 +64,34 @@ in {
"doom/custom.el".source = ../../config/doom/custom.el;
"doom/init.el".source = ../../config/doom/init.el;
"doom/packages.el".source = ../../config/doom/packages.el;
"doom/themes".source = ../../config/doom/themes;
# "doom/themes".source = ../../config/doom/themes;
# # Themeing
# "doom/themes/base16-samfelag-theme.el".text = ''
# (require 'base16-theme)
# (defvar base16-samfelag-theme-colors
# '(:base00 "#${config.colorScheme.palette.base00}"
# :base01 "#${config.colorScheme.palette.base01}"
# :base02 "#${config.colorScheme.palette.base02}"
# :base03 "#${config.colorScheme.palette.base03}"
# :base04 "#${config.colorScheme.palette.base04}"
# :base05 "#${config.colorScheme.palette.base05}"
# :base06 "#${config.colorScheme.palette.base06}"
# :base07 "#${config.colorScheme.palette.base07}"
# :base08 "#${config.colorScheme.palette.base08}"
# :base09 "#${config.colorScheme.palette.base09}"
# :base0A "#${config.colorScheme.palette.base0A}"
# :base0B "#${config.colorScheme.palette.base0B}"
# :base0C "#${config.colorScheme.palette.base0C}"
# :base0D "#${config.colorScheme.palette.base0D}"
# :base0E "#${config.colorScheme.palette.base0E}"
# :base0F "#${config.colorScheme.palette.base0F}")
# "All colors for Base16 Samfelag are defined here.")
# (deftheme base16-samfelag)
# (base16-theme-define 'base16-samfelag base16-samfelag-theme-colors)
# (provide-theme 'base16-samfelag)
# (provide 'base16-samfelag-theme)
# '';
# Themeing
"doom/themes/base16-samfelag-theme.el".text = ''
(require 'base16-theme)
(defvar base16-samfelag-theme-colors
'(:base00 "#${config.colorScheme.palette.base00}"
:base01 "#${config.colorScheme.palette.base01}"
:base02 "#${config.colorScheme.palette.base02}"
:base03 "#${config.colorScheme.palette.base03}"
:base04 "#${config.colorScheme.palette.base04}"
:base05 "#${config.colorScheme.palette.base05}"
:base06 "#${config.colorScheme.palette.base06}"
:base07 "#${config.colorScheme.palette.base07}"
:base08 "#${config.colorScheme.palette.base08}"
:base09 "#${config.colorScheme.palette.base09}"
:base0A "#${config.colorScheme.palette.base0A}"
:base0B "#${config.colorScheme.palette.base0B}"
:base0C "#${config.colorScheme.palette.base0C}"
:base0D "#${config.colorScheme.palette.base0D}"
:base0E "#${config.colorScheme.palette.base0E}"
:base0F "#${config.colorScheme.palette.base0F}")
"All colors for Base16 Samfelag are defined here.")
(deftheme base16-samfelag)
(base16-theme-define 'base16-samfelag base16-samfelag-theme-colors)
(provide-theme 'base16-samfelag)
(provide 'base16-samfelag-theme)
'';
};

View File

@@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
cfg = config.samfelag.modules.shell.starship;
in
{
options.samfelag.modules.shell.starship = {
enable = lib.mkEnableOption "A prompt for any shell";
};
config = lib.mkIf cfg.enable {
hm.programs.starship = {
enable = true;
settings = {
add_newline = false;
# Prompt on the right
right_format = "$time";
time.disabled = false;
# Status: Show error code of failed commands
status.disabled = false;
};
};
};
}

View File

@@ -11,7 +11,6 @@ in
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
zsh
zsh-powerlevel10k
];
programs.zsh.enable = true;
@@ -23,27 +22,26 @@ in
enableCompletion = true;
syntaxHighlighting.enable = true;
initExtra = ''
# Source generic (bash) configuration
if [ -d $HOME/.config/shell/sh ]; then
for rc in $HOME/.config/shell/sh/*.sh; do
emulate bash -c ". $rc"
done
fi
initContent = let
zshConfig = lib.mkOrder 1000 ''
# Source generic (bash) configuration
if [ -d $HOME/.config/shell/sh ]; then
for rc in $HOME/.config/shell/sh/*.sh; do
emulate bash -c ". $rc"
done
fi
# Source zsh specific configuration
if [[ -d $HOME/.config/shell/zsh ]]; then
for rc in $HOME/.config/shell/zsh/*.zsh; do
source $rc
done
fi
'';
initExtraBeforeCompInit = ''
# p10k instant prompt
P10K_INSTANT_PROMPT="$XDG_CACHE_HOME/p10k-instant-prompt-''${(%):-%n}.zsh"
[[ ! -r "$P10K_INSTANT_PROMPT" ]] || source "$P10K_INSTANT_PROMPT"
'';
# Source zsh specific configuration
if [[ -d $HOME/.config/shell/zsh ]]; then
for rc in $HOME/.config/shell/zsh/*.zsh; do
source $rc
done
fi
'';
in
lib.mkMerge [
zshConfig
];
oh-my-zsh = {
enable = true;
@@ -54,11 +52,6 @@ in
};
plugins = [
{
file = "powerlevel10k.zsh-theme";
name = "powerlevel10k";
src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k";
}
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
@@ -69,10 +62,14 @@ in
sha256 = "0za4aiwwrlawnia4f29msk822rj9bgcygw6a8a6iikiwzjjz0g91";
};
}
{
name = "vi-mode";
src = pkgs.zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
}
];
};
hm.xdg.configFile."zsh/.p10k.zsh".source = ../../config/zsh/.p10k.zsh;
samfelag.modules.shell.starship.enable = true;
};
}

View File

@@ -0,0 +1,39 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let
cfg = config.samfelag.modules.system.input.greek;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
in
{
options.samfelag.modules.system.input.greek = {
enable = mkEnableOption "Enable greek input";
};
config = mkIf cfg.enable {
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.addons = with pkgs; [
fcitx5-gtk
fcitx5-nord
];
};
environment.variables = {
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
};
hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable {
windowrule = "pseudo, class:fcitx";
exec-once = [
"fcitx -d -r"
"fcitx-remote -r"
];
};
};
}

View File

@@ -0,0 +1,46 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let
cfg = config.samfelag.modules.system.input.japanese;
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
in
{
options.samfelag.modules.system.input.japanese = {
enable = mkEnableOption "Enable japanese input";
};
config = mkIf cfg.enable {
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.addons = with pkgs; [
fcitx5-mozc-ut
fcitx5-gtk
fcitx5-nord
];
};
fonts.packages = with pkgs; [
ipafont
kochi-substitute
noto-fonts-cjk-sans
];
environment.variables = {
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
};
hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable {
windowrule = "pseudo, class:fcitx";
exec-once = [
"fcitx -d -r"
"fcitx-remote -r"
];
};
};
}