Regenerated

This commit is contained in:
2026-04-04 14:56:33 +02:00
parent 715d655783
commit 9d9b9efeba
2333 changed files with 304 additions and 94802 deletions
+304 -304
View File
File diff suppressed because it is too large Load Diff
@@ -1,92 +0,0 @@
;;; package --- early init -*- lexical-binding: t -*-
;;; Commentary:
;;; Prevents white flash and better Emacs defaults
;;; Code:
(set-language-environment "UTF-8")
(setq-default
default-frame-alist
'((background-color . "#1e1e2e")
(bottom-divider-width . 1) ; Thin horizontal window divider
(foreground-color . "#bac2de") ; Default foreground color
(fullscreen . maximized) ; Maximize the window by default
(horizontal-scroll-bars . nil) ; No horizontal scroll-bars
(left-fringe . 8) ; Thin left fringe
(menu-bar-lines . 0) ; No menu bar
(right-divider-width . 1) ; Thin vertical window divider
(right-fringe . 8) ; Thin right fringe
(tool-bar-lines . 0) ; No tool bar
(undecorated . t) ; Remove extraneous X decorations
(vertical-scroll-bars . nil)) ; No vertical scroll-bars
user-full-name "Henrov henrov" ; ME!
;; memory configuration
;; Higher garbage collection threshold, prevents frequent gc locks, reset later
gc-cons-threshold most-positive-fixnum
;; Ignore warnings for (obsolete) elisp compilations
byte-compile-warnings '(not obsolete)
;; And other log types completely
warning-suppress-log-types '((comp) (bytecomp))
;; Large files are okay in the new millenium.
large-file-warning-threshold 100000000
;; dont show garbage collection messages at startup, will reset later
garbage-collection-messages nil
;; native compilation
package-native-compile t
native-comp-warning-on-missing-source nil
native-comp-async-report-warnings-errors 'silent
;; Read more based on system pipe capacity
read-process-output-max (max (* 10240 10240) read-process-output-max)
;; scroll configuration
scroll-margin 0 ; Lets scroll to the end of the margin
scroll-conservatively 100000 ; Never recenter the window
scroll-preserve-screen-position 1 ; Scrolling back and forth
;; frame config
;; Improve emacs startup time by not resizing to adjust for custom settings
frame-inhibit-implied-resize t
;; Dont resize based on character height / width but to exact pixels
frame-resize-pixelwise t
;; backups & files
backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
backup-by-copying t ; Don't clobber symlinks
create-lockfiles nil ; Don't have temp files
delete-old-versions t ; Cleanup automatically
kept-new-versions 6 ; Update every few times
kept-old-versions 2 ; And cleanup even more
version-control t ; Version them backups
delete-by-moving-to-trash t ; Dont delete, send to trash instead
;; startup
inhibit-startup-screen t ; I have already done the tutorial. Twice
inhibit-startup-message t ; I know I am ready
inhibit-startup-echo-area-message t ; Yep, still know it
initial-scratch-message nil ; I know it is the scratch buffer!
initial-buffer-choice nil
inhibit-startup-buffer-menu t
inhibit-x-resources t
initial-major-mode 'fundamental-mode
pgtk-wait-for-event-timeout 0.001 ; faster child frames
ad-redefinition-action 'accept ; dont care about legacy things being redefined
inhibit-compacting-font-caches t
;; tabs
tab-width 4 ; Always tab 4 spaces.
indent-tabs-mode nil ; Never use actual tabs.
;; rendering
cursor-in-non-selected-windows nil ; dont render cursors other windows
;; packages
use-package-always-defer t
load-prefer-newer t
default-input-method nil
use-dialog-box nil
use-file-dialog nil
use-package-expand-minimally t
package-enable-at-startup nil
use-package-enable-imenu-support t
auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
package-archives '(("melpa" . "https://melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")
("melpa-stable" . "https://stable.melpa.org/packages/"))
package-archive-priorities '(("gnu" . 99)
("nongnu" . 80)
("melpa" . 70)
("melpa-stable" . 50))
)
;;; early-init.el ends here
@@ -1,400 +0,0 @@
;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
;;; Commentary:
;;; Simple Emacs setup I carry everywhere
;;; Code:
(setq custom-file (locate-user-emacs-file "custom.el"))
(load custom-file 'noerror) ;; no error on missing custom file
(require 'package)
(package-initialize)
(defun reset-custom-vars ()
"Resets the custom variables that were set to crazy numbers"
(setopt gc-cons-threshold (* 1024 1024 100))
(setopt garbage-collection-messages t))
(use-package emacs
:custom
(native-comp-async-query-on-exit t)
(read-answer-short t)
(use-short-answers t)
(enable-recursive-minibuffers t)
(which-func-update-delay 1.0)
(visible-bell nil)
(custom-buffer-done-kill t)
(whitespace-line-column nil)
(x-underline-at-descent-line t)
(imenu-auto-rescan t)
(uniquify-buffer-name-style 'forward)
(confirm-nonexistent-file-or-buffer nil)
(create-lockfiles nil)
(make-backup-files nil)
(kill-do-not-save-duplicates t)
(sentence-end-double-space nil)
(treesit-enabled-modes t)
:init
;; base visual
(menu-bar-mode -1) ;; no menu bar
(toggle-scroll-bar -1) ;; no scroll bar
(tool-bar-mode -1) ;; no tool bar either
(blink-cursor-mode -1) ;; stop blinking
;; font of the century
(set-frame-font "Aporetic Sans Mono 12" nil t)
:bind
(("C-<wheel-up>" . pixel-scroll-precision) ; dont zoom in please, just scroll
("C-<wheel-down>" . pixel-scroll-precision) ; dont zoom in either, just scroll
("C-x k" . kill-current-buffer)) ; kill the buffer, dont ask
:hook
(text-mode . delete-trailing-whitespace-mode)
(prog-mode . delete-trailing-whitespace-mode)
(after-init . global-display-line-numbers-mode) ;; always show line numbers
(after-init . column-number-mode) ;; column number in the mode line
(after-init . size-indication-mode) ;; file size in the mode line
(after-init . pixel-scroll-precision-mode) ;; smooth mouse scroll
(after-init . electric-pair-mode) ;; i mean ... parens should auto create
(after-init . reset-custom-vars)
)
(use-package autorevert
:ensure nil
:custom
(auto-revert-interval 3)
(auto-revert-remote-files nil)
(auto-revert-use-notify t)
(auto-revert-avoid-polling nil)
(auto-revert-verbose t)
:hook
(after-init . global-auto-revert-mode))
(use-package recentf
:ensure nil
:commands (recentf-mode recentf-cleanup)
:hook
(after-init . recentf-mode)
:custom
(recentf-auto-cleanup 'never)
(recentf-exclude
(list "\\.tar$" "\\.tbz2$" "\\.tbz$" "\\.tgz$" "\\.bz2$"
"\\.bz$" "\\.gz$" "\\.gzip$" "\\.xz$" "\\.zip$"
"\\.7z$" "\\.rar$"
"COMMIT_EDITMSG\\'"
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
"-autoloads\\.el$" "autoload\\.el$"))
:config
;; A cleanup depth of -90 ensures that `recentf-cleanup' runs before
;; `recentf-save-list', allowing stale entries to be removed before the list
;; is saved by `recentf-save-list', which is automatically added to
;; `kill-emacs-hook' by `recentf-mode'.
(add-hook 'kill-emacs-hook #'recentf-cleanup -90))
(use-package savehist
:ensure nil
:commands (savehist-mode savehist-save)
:hook
(after-init . savehist-mode)
:custom
(savehist-autosave-interval 600)
(savehist-additional-variables
'(kill-ring ; clipboard
register-alist ; macros
mark-ring global-mark-ring ; marks
search-ring regexp-search-ring)))
(use-package hl-line
:ensure nil
:custom
(hl-line-sticky-flag nil)
(global-hl-line-sticky-flag nil)
:hook
(after-init . global-hl-line-mode))
(use-package saveplace
:ensure nil
:commands (save-place-mode save-place-local-mode)
:hook
(after-init . save-place-mode)
:custom
(save-place-limit 400))
(use-package nerd-icons
:custom
;; disable bright icon colors
(nerd-icons-color-icons nil))hells.nix
(use-package doom-modeline
:custom
(inhibit-compacting-font-caches t) ;; speed
(doom-modeline-buffer-file-name-style 'relative-from-project)
(doom-modeline-major-mode-icon nil) ;; distracting icons, no thank you
(doom-modeline-buffer-encoding nil) ;; everything is utf-8 anyway
(doom-modeline-buffer-state-icon nil) ;; the filename already shows me
(doom-modeline-lsp nil) ;; lsp state is too distracting, too often
:hook (after-init . doom-modeline-mode))
(load-theme 'catppuccin :no-confirm)
(use-package diminish :demand t) ;; declutter the modeline
(use-package eldoc
:diminish eldoc-mode
:custom
(eldoc-echo-area-use-multiline-p nil)) ;; docs for everything
(use-package eldoc-box
:defer t
:config
(set-face-background 'eldoc-box-border (catppuccin-color 'green))
(set-face-background 'eldoc-box-body (catppuccin-color 'base))
:bind
(("M-h" . eldoc-box-help-at-point)))
(use-package pulsar
:commands pulsar-global-mode pulsar-recenter-top pulsar-reveal-entry
:init
(defface pulsar-catppuccin
`((default :extend t)
(((class color) (min-colors 88) (background light))
:background ,(catppuccin-color 'sapphire))
(((class color) (min-colors 88) (background dark))
:background ,(catppuccin-color 'sapphire))
(t :inverse-video t))
"Alternative nord face for `pulsar-face'."
:group 'pulsar-faces)
:custom
(pulsar-face 'pulsar-catppuccin)
:hook
(after-init . pulsar-global-mode))
(use-package which-key
:commands which-key-mode
:diminish which-key-mode
:hook
(after-init . which-key-mode))
(use-package expreg
:bind ("M-m" . expreg-expand))
(use-package vundo) ;; undo tree
;; better structured editing
(use-package puni
:commands puni-global-mode
:hook
(after-init . puni-global-mode))
(use-package avy
:bind
("M-i" . avy-goto-char-2)
:custom
(avy-background t))
(use-package consult
:bind
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
("M-y" . consult-yank-pop) ;; orig. yank-pop
("M-g M-g" . consult-goto-line) ;; orig. goto-line
("M-g i" . consult-imenu) ;; consult version is interactive
("M-g r" . consult-ripgrep) ;; find in project also works
:custom
(consult-narrow-key "<"))
(use-package vertico
:commands vertico-mode
:custom
(read-file-name-completion-ignore-case t)
(read-buffer-completion-ignore-case t)
(completion-ignore-case t)
(enable-recursive-minibuffers t)
(minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt))
:init
(vertico-mode)
:hook
(minibuffer-setup-hook . cursor-intangible-mode))
(use-package marginalia
:commands marginalia-mode
:hook (after-init . marginalia-mode))
(use-package crux
:bind
("C-c M-e" . crux-find-user-init-file)
("C-c C-w" . crux-transpose-windows)
("C-c M-d" . crux-find-current-directory-dir-locals-file)
("C-a" . crux-move-beginning-of-line))
(use-package magit
:bind (("C-M-g" . magit-status)))
(use-package nerd-icons-corfu
:commands nerd-icons-corfu-formatter
:defines corfu-margin-formatters)
(use-package corfu
:commands global-corfu-mode
:custom
(corfu-cycle t)
(corfu-auto t)
(corfu-auto-delay 1)
(corfu-auto-prefix 3)
(corfu-separator ?_)
:hook
(after-init . global-corfu-mode)
:config
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
(use-package cape)
(use-package orderless
:custom
(completion-styles '(orderless partial-completion basic))
(completion-category-defaults nil)
(completion-category-overrides nil))
(use-package yasnippet
:commands yas-global-mode
:diminish yas-minor-mode
:hook
(after-init . yas-global-mode))
(use-package yasnippet-snippets :after yasnippet)
(use-package exec-path-from-shell
:commands exec-path-from-shell-initialize
:custom
(exec-path-from-shell-arguments nil)
:hook
(after-init . exec-path-from-shell-initialize))
(use-package nixpkgs-fmt
:custom
(nixpkgs-fmt-command "nixfmt"))
(use-package eat
:bind
(("C-c e p" . eat-project)
("C-c e t" . eat)))
(use-package f :demand t)
(use-package envrc
:commands envrc-global-mode
:hook
(after-init . envrc-global-mode))
(use-package gptel
:commands gptel-make-anthropic f-read-text
:config
(gptel-make-anthropic "Claude"
:stream t :key (f-read-text "/run/secrets/claude_key")))
(use-package sideline-flymake)
(use-package sideline-eglot)
(use-package sideline
:custom
(sideline-backends-right '(sideline-flymake sideline-eglot))
:hook
(eglot-managed-mode . sideline-mode)
(flymake-mode . sideline-mode))
(use-package eglot
:custom
(eglot-extend-to-xref t)
(eglot-ignored-server-capabilities '(:inlayHintProvider))
(jsonrpc-event-hook nil)
:hook
(eglot-managed-mode . eldoc-box-hover-mode)
(before-save . eldoc-format-buffer)
:bind
(:map eglot-mode-map
("C-c l a" . eglot-code-actions)
("C-c l r" . eglot-rename)
("C-c l h" . eldoc)
("C-c l g" . xref-find-references)
("C-c l w" . eglot-reconnect)))
(use-package proced
:custom
(proced-auto-update-flag t)
(proced-auto-update-interval 3)
(proced-enable-color-flag t)
(proced-show-remote-processes t))
(use-package org
:ensure t
:defer t
:commands (org-mode org-capture org-agenda)
:init
(defvar org-journal-file "~/nextcloud/org/journal.org")
(defvar org-archive-file "~/nextcloud/org/archive.org")
(defvar org-notes-file "~/nextcloud/org/notes.org")
(defvar org-inbox-file "~/nextcloud/org/inbox.org")
(defvar org-work-file "~/nextcloud/org/work.org")
(defun my/org-capture-project-target-heading ()
"Determine Org target headings from the current file's project path.
This function assumes a directory structure like '~/projects/COMPANY/PROJECT/'.
It extracts 'COMPANY' and 'PROJECT' to use as nested headlines
for an Org capture template.
If the current buffer is not visi
ting a file within such a
project structure, it returns nil, causing capture to default to
the top of the file."
(when-let* ((path (buffer-file-name))) ; Ensure we are in a file-visiting buffer
(let ((path-parts (split-string path "/" t " ")))
(when-let* ((projects-pos (cl-position "projects" path-parts :test #'string=))
(company (nth (+ 1 projects-pos) path-parts))
(project (nth (+ 2 projects-pos) path-parts)))
;; Return a list of headlines for Org to find or create.
(list company project)))))
:bind
(("C-c c" . org-capture)
("C-c i" . org-store-link)
("C-c a" . org-agenda)
:map org-mode-map
("C-c t" . org-toggle-inline-images)
("C-c l" . org-toggle-link-display))
:custom
(org-agenda-files (list org-inbox-file org-journal-file))
(org-directory "~/nextcloud/org")
(org-default-notes-file org-inbox-file)
(org-archive-location (concat org-archive-file "::* From %s"))
(org-log-done 'time)
(org-log-into-drawer t)
(org-hide-emphasis-markers t)
(org-src-fontify-natively t)
(org-src-tab-acts-natively t)
(org-capture-templates '(("t" "Todo" entry (file org-inbox-file)
"* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n)")
("j" "Journal" entry (file+olp+datetree org-journal-file)
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
("n" "Note" entry (file org-notes-file)
"* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n")
("p" "Project Task" item
(file+function org-work-file my/org-capture-project-target-heading)
"* TODO %? \n CLOCK: %U"
))
)
:config
;; Enable syntax highlighting in code blocks
(add-hook 'org-mode-hook 'turn-on-font-lock)
(add-hook 'org-mode-hook 'org-indent-mode))
;; extras
(use-package comp-run
:ensure nil
:config
(push "tramp-loaddefs.el.gz" native-comp-jit-compilation-deny-list)
(push "cl-loaddefs.el.gz" native-comp-jit-compilation-deny-list))
(use-package rustic
:custom
(rustic-lsp-client 'eglot))
(provide 'init)
;;; init.el ends here
@@ -1,127 +0,0 @@
:root {
--base: #1e1e2e;
--mantle: #181825;
--crust: #11111b;
--text: #cdd6f4;
--subtext1: #bac2de;
--subtext0: #a6adc8;
--overlay2: #9399b2;
--overlay1: #7f849c;
--overlay0: #6c7086;
--surface2: #585b70;
--surface1: #45475a;
--surface0: #313244;
--lavender: #b4befe;
--blue: #89b4fa;
--sapphire: #74c7ec;
--teal: #94e2d5;
--green: #a6e3a1;
--yellow: #f9e2af;
--peach: #fab387;
--maroon: #eba0ac;
--red: #f38ba8;
--mauve: #cba6f7;
--pink: #f5c2e7;
--flamingo: #f2cdcd;
--rosewater: #f5e0dc;
}
* {
all: unset;
color: var(--text);
font-family:
FiraCode Nerd Font,
monospace;
font-size: 12px;
}
window {
border: 1px solid var(--surface0);
background-color: #1e1e2ee6;
border-radius: 8px;
margin: 0;
padding: 0;
box-shadow: 0 2px 10px #0003;
}
box {
spacing: 8px;
background-color: #0000;
padding: 4px 8px;
}
label {
color: var(--text);
padding: 2px 6px;
}
button {
color: var(--text);
background-color: var(--surface1);
border-radius: 4px;
padding: 2px 8px;
transition: all 0.2s;
}
button:hover {
background-color: var(--surface2);
color: var(--lavender);
}
button:active {
background-color: var(--blue);
color: var(--crust);
}
.workspace {
color: var(--subtext1);
background-color: #0000;
border-radius: 4px;
margin: 0 2px;
padding: 2px 8px;
}
.workspace.active {
background-color: var(--blue);
color: var(--base);
}
.workspace.urgent {
background-color: var(--red);
color: var(--crust);
}
.workspace.focused {
background-color: var(--lavender);
color: var(--base);
}
#clock {
color: var(--peach);
background-color: #0000;
padding: 2px 8px;
}
#cpu,
#ram,
#temp {
color: var(--green);
background-color: #0000;
padding: 2px 8px;
}
#volume {
color: var(--mauve);
}
#battery {
color: var(--green);
}
#battery.discharging {
color: var(--yellow);
}
#battery.critical {
color: var(--red);
}
@@ -1,79 +0,0 @@
;; Main bar widget
(defwidget bar []
(box :class "bar" :orientation "h" :space-evenly false :font "FiraCode Nerd Font 10"
;; Left: Workspaces (Hyprland)
(box :class "workspaces" :orientation "h"
(label :class "workspace" :id "workspace_1" :text "1")
(label :class "workspace" :id "workspace_2" :text "2")
(label :class "workspace" :id "workspace_3" :text "3")
(label :class "workspace" :id "workspace_4" :text "4")
(label :class "workspace" :id "workspace_5" :text "5")
)
;; Center: Empty (placeholder for alignment)
(box :halign "center" :hexpand true)
;; Right: System modules
(box :class "right-items" :orientation "h" :spacing 8
;; Idle inhibitor
(button :class "idle-inhibitor" :onclick "eww update idle_inhibitor_icon='\uF472'; notify-send 'Idle inhibitor' 'Activated'"
:label (label :id "idle_inhibitor_icon" :text "\uF472"))
;; PulseAudio
(button :class "pulseaudio" :onclick "pavucontrol"
:label (label :id "pulseaudio_label" :text "\uF028 100%"))
;; Network
(button :class "network" :onclick "impala" :onclick-right "nm-connection-editor"
:label (label :id "network_label" :text "Disconnected !"))
;; Battery
(button :class "battery" :label (label :id "battery_label" :text "100% \uF0E4"))
;; Tray placeholder (requires external tray like waybar-tray)
(box :class "tray" :orientation "h" :spacing 4
(label :text "Tray"))
;; Clock
(button :class "clock" :onclick "flatpak run eu.betterbird.Betterbird -calendar"
:label (label :id "clock_label" :text "Mon, 01 Jan 2024 - 12:00"))
)
)
)
;; Window definition
(defwindow bar-window
:geometry (geometry :x 0 :y 0 :width 1920 :height 34 :anchor "top left")
:layer "top"
:exclusivity "ignore"
(bar)
)
;; Scripts to update dynamic content
(defpoll [1000] ;; Update every second
;; Update PulseAudio volume
(setq pulseaudio-volume (exec "pamixer --get-volume"))
(setq pulseaudio-muted (exec "pamixer --get-mute"))
(if (string= pulseaudio-muted "true")
(eww update pulseaudio_label="\uF026")
(eww update pulseaudio_label=(strfmt "{}% {}" pulseaudio-volume (if (> (string->number pulseaudio-volume) 50) "\uF028" "\uF027"))
)
;; Update network status
(setq network-essid (exec "nmcli -t -f TYPE,NAME dev status | awk -F: '/wifi/{print $2}'"))
(if (string-empty? network-essid)
(eww update network_label="Disconnected !")
(eww update network_label=(strfmt "\uF1EB ({})" network-essid))
)
;; Update clock
(eww update clock_label=(strftime "%a, %d %b %Y - %H:%M"))
;; Update battery status
(setq battery-capacity (exec "cat /sys/class/power_supply/BAT0/capacity"))
(setq battery-status (exec "cat /sys/class/power_supply/BAT0/status"))
(if (string= battery-status "Charging")
(eww update battery_label=(strfmt "{}% \uF0E4" battery-capacity))
(eww update battery_label=(strfmt "{}% \uF079" battery-capacity))
)
)
@@ -1,3 +0,0 @@
com.github.tchx84.Flatseal
eu.betterbird.Betterbird
com.todoist.Todoist
@@ -1,32 +0,0 @@
# Default tuigreet greeter configuration
# Place this in ./assets/system/conf/greeter.toml
[general]
# Show time at the top
show_time = true
time_format = "%I:%M %p | %a • %h | %F"
# Remember last logged-in user
remember_user = true
# Welcome message
welcome_message = "Welcome to Droidnix!"
[prompt]
# Symbol for input prompt
symbol = "➜"
# Colors
user_color = "green"
password_color = "yellow"
prompt_color = "cyan"
[session]
# Default session to launch after login
# Must match a valid NixOS session binary
command = "Hyprland"
# Optional: extra command-line args for the session
args = []
# Optional: background image (can be a full path)
#background = "/path/to/background.png"
@@ -1,12 +0,0 @@
# ./assets/conf/desktop/hypr/animations.conf
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
@@ -1,33 +0,0 @@
# Keyboard and mouse settings
input {
kb_layout = us
kb_options = ctrl:nocaps
sensitivity = -0.5
accel_profile = adaptive
scroll_factor = 0.5
}
# Scrolling modifier settings
input {
scroll_main_mod = alt
scroll_main_mod_invert = no
scroll_per_border = yes
}
# Touchpad settings (applies to all touchpads)
input:touchpad:* {
natural_scroll = yes
scroll_factor = 0.5
}
# Focus settings
focus {
follow_mouse = yes
new_windows = smart
}
# Miscellaneous settings
misc {
resize_step = 10 10
anim_resize_friction = 0.1
}
@@ -1,154 +0,0 @@
$mainMod = SUPER
# use walker to show exec menu
# bind = $mainMod, Space , exec, walker
# bind = $mainMod, P, pseudo
# bind = $mainMod, T, togglesplit
# grimblast
# bind = $mainMod SHIFT, P, exec, grimblast -n -f copysave active
# bind = $mainMod SHIFT, A, exec, grimblast -n -f copysave area
# bind = $mainMod ALT, P, exec, grimblast -n -f copysave output
# bind = $mainMod CTRL, P, exec, grimblast -n -f copysave screen
# Terminal / launcher / kill / reload
bind = $mainMod, E, exec, thunar
bind = $mainMod, RETURN, exec, kitty
bind = $mainMod, Space, exec, wofi --show drun
bind = ALT, Space, exec, wofi --show drun
bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod SHIFT, R, exec, hyprctl reload
# Switch windows
bind = ALT, TAB, cyclenext,
# bind = ALT SHIFT, TAB, cyclenext prev
# switch layouts
# Hyprscrolling
bind = $mainMod, period, layoutmsg, move +col
bind = $mainMod, comma, layoutmsg, swapcol l
# Make / break a tab-group (stack)
bind = $mainMod, S, togglegroup
# Cycle tabs in the group
bind = $mainMod, L, changegroupactive, f
bind = $mainMod, H, changegroupactive, b
bind = $mainMod, T, exec, ~/.config/hypr/scripts/layout-selector.sh
# Focus movement
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Move windows
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
# Resize windows
bind = $mainMod CTRL, H, resizeactive, -30 0
bind = $mainMod CTRL, L, resizeactive, 30 0
bind = $mainMod CTRL, K, resizeactive, 0 -30
bind = $mainMod CTRL, J, resizeactive, 0 30
# Floating / fullscreen
bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen, 0
bind = $mainMod SHIFT, F, fullscreen, 1
# Workspaces
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Cycle workspaces
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Mouse drag
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
#########################
# Screenshots
#########################
bind = $mainMod SHIFT, s, exec, grim -g "$(slurp)" - | wl-copy
bind = , XF86Screenshot, exec, grim - | wl-copy
#########################
# Audio (pamixer)
#########################
bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
bind = , XF86AudioLowerVolume, exec, pamixer -d 5
bind = , XF86AudioMute, exec, pamixer -t
bind = , XF86AudioMicMute, exec, pamixer --default-source -t
#########################
# Media (playerctl)
#########################
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPause, exec, playerctl pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
bind = , XF86AudioStop, exec, playerctl stop
#########################
# Brightness (brightnessctl)
#########################
bind = , XF86MonBrightnessUp, exec, brightnessctl set +10%
bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
bind = , XF86KbdBrightnessUp, exec, brightnessctl -d '*kbd_backlight*' set +10%
bind = , XF86KbdBrightnessDown, exec, brightnessctl -d '*kbd_backlight*' set 10%-
#########################
# Power / session
#########################
bind = , XF86Sleep, exec, systemctl suspend
bind = , XF86PowerOff, exec, systemctl poweroff
bind = , XF86WakeUp, exec, systemctl suspend
bind = $mainMod, L, exec, loginctl lock-session
# bind = $mainMod, X, exec, ~/.config/hypr/scripts/powermenu.sh
#########################
# Laptop lid settings
#########################
bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-action.sh
bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/lid-restore.sh
#########################
# Start apps
#########################
bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird
bind = CTRL ALT, S, exec, spotify
bind = $mainMod, Z, exec, zeditor
bind = $mainMod, W, exec, zen
@@ -1,5 +0,0 @@
exec-once = dbus-update-activation-environment --systemd --all
exec-once = hypridle
exec-once = hyprpolkitagent
exec-once = systemd-run --user --scope --unit=elephant elephant
exec-once = bash -c "sleep 5 && waybar"
@@ -1,16 +0,0 @@
general {
lock_cmd = hyprlock
after_sleep_cmd = hyprctl dispatch dpms on
ignore_dbus_inhibit = false
}
listener {
timeout = 600
on-timeout = hyprlock
}
listener {
timeout = 900
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}
@@ -1,38 +0,0 @@
source = ./theming.conf
source = ./animations.conf
source = ./bindings.conf
# source = ./behaviour.conf
source = ./exec-once.conf
source = ./layer-rules.conf
source = ./layout.conf
source = ./monitor-rules.conf
# source = ./window-rules.conf
# source = ./workspace-rules.conf
exec-once = /nix/store/c9cnbxhxbagj7gfpc1g5hl4x4f8dzayv-dbus-1.16.2/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
decoration {
shadow {
color=rgba(1e1e2e99)
}
}
general {
col.active_border=0xff97cbcd 0xff89b4fa
col.inactive_border=rgb(45475a)
}
group {
groupbar {
col.active=rgb(89b4fa)
col.inactive=rgb(45475a)
text_color=rgb(cdd6f4)
}
col.border_active=rgb(89b4fa)
col.border_inactive=rgb(45475a)
col.border_locked_active=rgb(94e2d5)
}
misc {
background_color=rgb(1e1e2e)
}
@@ -1,32 +0,0 @@
# ~/.config/hypr/hyprlock.conf
general {
grace = 2
ignore_empty_input = true
}
background {
path = ~/.config/hypr/lock.png
blur_passes = 2
blur_size = 6
}
input-field {
size = 320, 60
outline_thickness = 2
dots_size = 0.25
dots_spacing = 0.20
fade_on_empty = true
placeholder_text = "Password"
position = 0, -120
halign = center
valign = center
}
label {
text = $TIME
font_size = 72
position = 0, 120
halign = center
valign = center
}
@@ -1,6 +0,0 @@
layerrule = blur on, ignore_alpha 1, match:namespace waybar
layerrule = xray 1, match:namespace waybar
layerrule = blur on, ignore_alpha 1, match:namespace walker
layerrule = xray 1, match:namespace walker
layerrule = blur on, ignore_alpha 1, match:namespace swaync-control-center
layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window
@@ -1 +0,0 @@
workspace_layouts = dwindle, master, scrolling, monocle
@@ -1,2 +0,0 @@
# Default portable monitor rule
monitor=DP-1,3840x1080@144,1920x0,1
@@ -1,34 +0,0 @@
#!/usr/bin/env bash
# layout-selector.sh
# Select a workspace layout using Wofi, shows description, applies with layoutmsg
# Define layouts and descriptions
declare -A LAYOUTS=(
[dwindle]="舘 Dwindle: Auto-tiling, windows shrink progressively"
[master]=" Master: One main window, others stacked"
[scrolling]=" Scrolling: Vertical list, scroll through windows"
[monocle]=" Monocle: One window fills the screen"
[floating]=" Floating: Free move & resize"
)
ORDER=(dwindle master scrolling monocle floating)
# Prepare Wofi menu: show "layoutname: description"
MENU_ITEMS=()
for key in "${ORDER[@]}"; do
MENU_ITEMS+=("$key: ${LAYOUTS[$key]}")
done
# Show selection menu via Wofi
CHOICE=$(printf '%s\n' "${MENU_ITEMS[@]}" | wofi --dmenu --prompt "Select Layout")
# Exit if cancelled
[ -z "$CHOICE" ] && exit 0
# Extract layout name from selection (before colon)
LAYOUT_NAME="${CHOICE%%:*}"
# Apply layout via layoutmsg
hyprctl dispatch layoutmsg setlayout "$LAYOUT_NAME"
# Show OSD feedback
hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000
@@ -1,40 +0,0 @@
# Hyprland Catppuccin Mocha Theme (solid colors)
# Colors
$base = #1e1e2e
$mantle = #181825
$surface0 = #313244
$surface1 = #45475a
$surface2 = #585b70
$text = #cdd6f4
$rosewater = #f5e0dc
$lavender = #b4befe
$red = #f38ba8
$peach = #fab387
$yellow = #f9e2af
$green = #a6e3a1
$teal = #94e2d5
$blue = #89b4fa
$mauve = #cba6f7
$flamingo = #f2cdcd
$inactive = #595959aa
# General theming
general {
gaps_in = 2
gaps_out = 4
border_size = 4
layout = scrolling
resize_on_border = true
extend_border_grab_area = 20
# Solid-color borders
col.active_border = rgb(FFFF00)
#col.active_border = #a6e3a1
#col.inactive_border = #595959aa
}
# Window decorations
decoration {
rounding = 8
}
@@ -1,14 +0,0 @@
# Floating and centering nm-connection-editor
windowrule = float, nm-connection-editor
windowrule = move center, nm-connection-editor
windowrule = size 900 700, nm-connection-editor
# Center all new windows by default
windowrule = center, ^(.*)
# Example: Float specific apps (uncomment to use)
windowrule = float, ^(pavucontrol)$
# Make Wofi windows blurred
windowrulev2 = floatclass:Wofi,blur:15
windowrulev2 = floatclass:Wofi,floating:true
@@ -1,30 +0,0 @@
# Workspace definitions (modern syntax)
workspace = 1
workspace = 2
workspace = 3
workspace = 4
workspace = 5
# Auto-launch apps on specific workspaces (use `exec` with `workspace` rule)
exec-once = kitty, workspace 1
exec-once = flatpak run app.betterbird.zen, workspace 2
exec-once = zen, workspace 3
# Force a specific layout for a workspace
workspace 1, layout:dwindle
workspace 2, layout:master
workspace 3, layout:msg
# Set workspace persistence
workspace 1, persistent:true
workspace 2, persistent:true
# Move specific apps to workspaces automatically
windowrule = move workspace 1, ^(kitty)$
windowrule = move workspace 2, ^(zen)$
windowrule = move workspace 3, ^(libreoffice)$
# Workspace behavior
workspace {
cycle_move_empty = no
}
@@ -1,84 +0,0 @@
# vim:ft=kitty
## name: Catppuccin Kitty Mocha
## author: Catppuccin Org
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
# Cursor colors
cursor #f5e0dc
cursor_text_color #1e1e2e
# Scrollbar colors
scrollbar_handle_color #9399b2
scrollbar_track_color #45475a
# URL color when hovering with mouse
url_color #f5e0dc
# Kitty window border colors
active_border_color #b4befe
inactive_border_color #6c7086
bell_border_color #f9e2af
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111b
active_tab_background #cba6f7
inactive_tab_foreground #cdd6f4
inactive_tab_background #181825
tab_bar_background #11111b
# Colors for marks (marked text in the terminal)
mark1_foreground #1e1e2e
mark1_background #b4befe
mark2_foreground #1e1e2e
mark2_background #cba6f7
mark3_foreground #1e1e2e
mark3_background #74c7ec
# The 16 terminal colors
# black
color0 #45475a
color8 #585b70
# red
color1 #f38ba8
color9 #f38ba8
# green
color2 #a6e3a1
color10 #a6e3a1
# yellow
color3 #f9e2af
color11 #f9e2af
# blue
color4 #89b4fa
color12 #89b4fa
# magenta
color5 #f5c2e7
color13 #f5c2e7
# cyan
color6 #94e2d5
color14 #94e2d5
# white
color7 #bac2de
color15 #a6adc8
@@ -1,15 +0,0 @@
# Generated by Home Manager.
# See https://sw.kovidgoyal.net/kitty/conf.html
shell_integration no-rc
include Catppuccin-Mocha.conf
map ctrl+shift+v paste_from_clipboard
map ctrl+shift+c copy_to_clipboard
background_opacity 0.2
background_blur 1
dynamic_background_opacity yes
font_family FiraCode Nerd Font
font_size 10.0
@@ -1,51 +0,0 @@
#productivity
todoist
# browsers
brave
chromium
# utils
git
direnv
ripgrep
wget
kdePackages.kdeconnect-kde
_1password-gui
tree
gparted
file
htop
btop
bat
wev
solaar
baobab
duf
zed-editor
eza
z-lua
qdirstat
# office
obsidian
onlyoffice-desktopeditors
# development
postman
tea
#jetbrains.pycharm
python3
# communication
nextcloud-client
nextcloud-talk-desktop
signal-desktop
openssl
# multimedia
audacity
handbrake
spotify
vlc
@@ -1,277 +0,0 @@
format = """
[](red)\
$os\
$username\
[](bg:peach fg:red)\
$directory\
[](bg:yellow fg:peach)\
$git_branch\
$git_status\
[](fg:yellow bg:green)\
$c\
$rust\
$golang\
$nodejs\
$php\
$java\
$kotlin\
$haskell\
$python\
[](fg:green bg:sapphire)\
$conda\
[](fg:sapphire bg:lavender)\
$time\
[ ](fg:lavender)\
$cmd_duration\
$line_break\
$character"""
palette = 'catppuccin_mocha'
[os]
disabled = false
style = "bg:red fg:crust"
[os.symbols]
Windows = ""
Ubuntu = "󰕈"
SUSE = ""
Raspbian = "󰐿"
Mint = "󰣭"
Macos = "󰀵"
Manjaro = ""
Linux = "󰌽"
Gentoo = "󰣨"
Fedora = "󰣛"
Alpine = ""
Amazon = ""
Android = ""
AOSC = ""
Arch = "󰣇"
Artix = "󰣇"
CentOS = ""
Debian = "󰣚"
Redhat = "󱄛"
RedHatEnterprise = "󱄛"
[username]
show_always = true
style_user = "bg:red fg:crust"
style_root = "bg:red fg:crust"
format = '[ $user]($style)'
[directory]
style = "bg:peach fg:crust"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = "󰝚 "
"Pictures" = " "
"Developer" = "󰲋 "
[git_branch]
symbol = ""
style = "bg:yellow"
format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)'
[git_status]
style = "bg:yellow"
format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'
[nodejs]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[c]
symbol = " "
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[rust]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[golang]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[php]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[java]
symbol = " "
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[kotlin]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[haskell]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[python]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'
[docker_context]
symbol = ""
style = "bg:sapphire"
format = '[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'
[conda]
symbol = "  "
style = "fg:crust bg:sapphire"
format = '[$symbol$environment ]($style)'
ignore_base = false
[time]
disabled = false
time_format = "%R"
style = "bg:lavender"
format = '[[  $time ](fg:crust bg:lavender)]($style)'
[line_break]
disabled = false
[character]
disabled = false
success_symbol = '[](bold fg:green)'
error_symbol = '[](bold fg:red)'
vimcmd_symbol = '[](bold fg:green)'
vimcmd_replace_one_symbol = '[](bold fg:lavender)'
vimcmd_replace_symbol = '[](bold fg:lavender)'
vimcmd_visual_symbol = '[](bold fg:yellow)'
[cmd_duration]
show_milliseconds = true
format = " in $duration "
style = "bg:lavender"
disabled = false
show_notifications = true
min_time_to_notify = 45000
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
[palettes.catppuccin_frappe]
rosewater = "#f2d5cf"
flamingo = "#eebebe"
pink = "#f4b8e4"
mauve = "#ca9ee6"
red = "#e78284"
maroon = "#ea999c"
peach = "#ef9f76"
yellow = "#e5c890"
green = "#a6d189"
teal = "#81c8be"
sky = "#99d1db"
sapphire = "#85c1dc"
blue = "#8caaee"
lavender = "#babbf1"
text = "#c6d0f5"
subtext1 = "#b5bfe2"
subtext0 = "#a5adce"
overlay2 = "#949cbb"
overlay1 = "#838ba7"
overlay0 = "#737994"
surface2 = "#626880"
surface1 = "#51576d"
surface0 = "#414559"
base = "#303446"
mantle = "#292c3c"
crust = "#232634"
[palettes.catppuccin_latte]
rosewater = "#dc8a78"
flamingo = "#dd7878"
pink = "#ea76cb"
mauve = "#8839ef"
red = "#d20f39"
maroon = "#e64553"
peach = "#fe640b"
yellow = "#df8e1d"
green = "#40a02b"
teal = "#179299"
sky = "#04a5e5"
sapphire = "#209fb5"
blue = "#1e66f5"
lavender = "#7287fd"
text = "#4c4f69"
subtext1 = "#5c5f77"
subtext0 = "#6c6f85"
overlay2 = "#7c7f93"
overlay1 = "#8c8fa1"
overlay0 = "#9ca0b0"
surface2 = "#acb0be"
surface1 = "#bcc0cc"
surface0 = "#ccd0da"
base = "#eff1f5"
mantle = "#e6e9ef"
crust = "#dce0e8"
[palettes.catppuccin_macchiato]
rosewater = "#f4dbd6"
flamingo = "#f0c6c6"
pink = "#f5bde6"
mauve = "#c6a0f6"
red = "#ed8796"
maroon = "#ee99a0"
peach = "#f5a97f"
yellow = "#eed49f"
green = "#a6da95"
teal = "#8bd5ca"
sky = "#91d7e3"
sapphire = "#7dc4e4"
blue = "#8aadf4"
lavender = "#b7bdf8"
text = "#cad3f5"
subtext1 = "#b8c0e0"
subtext0 = "#a5adcb"
overlay2 = "#939ab7"
overlay1 = "#8087a2"
overlay0 = "#6e738d"
surface2 = "#5b6078"
surface1 = "#494d64"
surface0 = "#363a4f"
base = "#24273a"
mantle = "#1e2030"
crust = "#181926"
@@ -1,28 +0,0 @@
enable = true;
base16Scheme = ../../../assets/system/theming/stylix/catppuccin-mocha.yaml;
image = ../../../assets/hyprland/wallpaperstuff/pictures/wall1.jpg;
polarity = "dark";
cursor = {
package = "phinger-cursors"; # symbolic reference
name = "phinger-cursors-light";
size = 24;
};
fonts = {
monospace = {
package = "nerd-fonts-fira-code";
name = "Fira Code Nerd Font";
};
sansSerif = {
package = "lato";
name = "Lato";
};
};
icons = {
enable = true;
package = "papirus-icon-theme";
dark = "Papirus-Dark";
light = "Papirus-Light";
};
@@ -1,84 +0,0 @@
# vim:ft=kitty
## name: Catppuccin Kitty Mocha
## author: Catppuccin Org
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
# Cursor colors
cursor #f5e0dc
cursor_text_color #1e1e2e
# Scrollbar colors
scrollbar_handle_color #9399b2
scrollbar_track_color #45475a
# URL color when hovering with mouse
url_color #f5e0dc
# Kitty window border colors
active_border_color #b4befe
inactive_border_color #6c7086
bell_border_color #f9e2af
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111b
active_tab_background #cba6f7
inactive_tab_foreground #cdd6f4
inactive_tab_background #181825
tab_bar_background #11111b
# Colors for marks (marked text in the terminal)
mark1_foreground #1e1e2e
mark1_background #b4befe
mark2_foreground #1e1e2e
mark2_background #cba6f7
mark3_foreground #1e1e2e
mark3_background #74c7ec
# The 16 terminal colors
# black
color0 #45475a
color8 #585b70
# red
color1 #f38ba8
color9 #f38ba8
# green
color2 #a6e3a1
color10 #a6e3a1
# yellow
color3 #f9e2af
color11 #f9e2af
# blue
color4 #89b4fa
color12 #89b4fa
# magenta
color5 #f5c2e7
color13 #f5c2e7
# cyan
color6 #94e2d5
color14 #94e2d5
# white
color7 #bac2de
color15 #a6adc8
@@ -1,72 +0,0 @@
##############################################
# Aliases (source-of-truth)
#
# This file is written in bash/zsh alias syntax in [bash_zsh], [bash_specific], [zsh_specific].
# Fish has different syntax; the Nix module translates [bash_zsh] into fish format and then
# appends [fish_specific] as-is.
##############################################
##############################################
# Generic aliases (bash/zsh)
# These are intended to be available in bash and zsh.
##############################################
[bash_zsh]
alias ll='ls -lah'
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gcp='git add . && git commit && git push'
alias cd='z'
alias nps='xdg-open https://search.nixos.org'
alias hvnx='cd ~/Repos/nixos/henrovnix_ok'
alias emt='hvnx && emacs README.org --batch -f org-babel-tangle && emacs -Q --batch README.org -f org-html-export-to-html'
alias nxs='hvnx && sudo nixos-rebuild switch --flake .#traveldroid'
alias nxt='hvnx && sudo nixos-rebuild test --flake .#traveldroid'
alias nxv='hvnx && sudo nixos-rebuild build-vm --flake .#traveldroid && "$(ls -1 ./result/bin/run-*-vm | head -n 1)"'
alias rb='systemctl reboot'
alias po='systemctl poweroff'
alias fpl='flatpak list'
alias fps='flatpak search'
alias fpi='flatpak install'
alias fpr='flatpak run'
alias nxc='ssh henrov@nextcloud.data-pro.nu'
alias vs='code'
alias blog='cd ~/Repos/blog && ll'
alias keys='hyprctl binds'
##############################################
# Shell-specific aliases / examples
#
# Everything below is COMMENTED OUT on purpose.
# These examples show syntax or commands that are shell-specific
# (or behave differently across shells).
##############################################
[bash_specific]
# Enable recursive globbing (**)
# alias sg='shopt -s globstar'
[zsh_specific]
# Recursive globbing works by default in zsh; this prints matches one-per-line
# alias recglob='print -l **/*.nix'
[fish_specific]
# Fish has its own language; this is fish-only syntax (not bash/zsh)
# alias setvar='set -gx EDITOR emacs'
[dash_specific]
# dash is a minimal POSIX shell; shown here only as an example
# alias com='command -v ls'
[nushell_specific]
# Nushell pipelines structured data; this is nu-only syntax
# alias fbf='ls | where size > 1mb | get name'
@@ -1,15 +0,0 @@
##############################################
# Enabled shells (source-of-truth)
#
# Edit this file in the repo:
# ./assets/conf/dev/terminal/enabled_shells.conf
#
# After changing, rebuild Home Manager / your system as you normally do.
##############################################
[enabled_shells]
bash = yes
zsh = yes
fish = no
dash = no
nushell = no
@@ -1,113 +0,0 @@
{
"layer": "top",
"height": 34,
//"modules-left": ["hyprland/window"],
"modules-center": ["hyprland/workspaces" ],
"modules-right": [
"idle_inhibitor",
"pulseaudio",
"network",
// "cpu",
// "memory",
// "temperature",
"battery",
"tray",
"clock",
"custom/notifications",
],
/*
"custom/notifications": {
"tooltip": false,
"return-type": "json",
"exec-if": "which swaync-client",
"exec": "swaync-client -swb",
"format": "{icon}",
"format-icons": {
"notification": "",
"none": "",
"dnd-notification": "󰂠",
"dnd-none": "󰪓",
},
"on-click": "swaync-client -t",
"on-click-right": "swaync-client -d",
"on-click-middle": "swaync-client -dn",
},
*/
"idle_inhibitor": {
"tooltip": true,
"format": "{icon}",
"format-icons": {
"activated": "  ",
"deactivated": " 󰒲 ",
},
"tooltip-format-activated": "Staying awake",
"tooltip-format-deactivated": "Might sleep....",
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}",
"format-muted": "",
"format-icons": {
"headphones": "",
"headset": "",
"phone": "",
"portable": "",
"default": ["", ""],
},
"on-click": "pavucontrol",
},
"network": {
"format-wifi": " ({bandwidthDownBits})",
"format-ethernet": " ({bandwidthDownBits})",
"format-disconnected": "Disconnected ⚠",
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
"tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}",
"on-click": "impala",
"on-click-right": "nm-connection-editor",
},
"cpu": {
"format": "{usage}%  ",
"tooltip": false,
},
"memory": {
"format": "{percentage}%  ",
},
"temperature": {
"format": "{temperatureC}°C ",
"tooltip": false,
},
"tray": {
"spacing": 10,
"icon-size": 14,
},
"clock": {
"format": "{:%a, %d %b %Y - %H:%M}",
"tooltip": false,
"on-click": "flatpak run eu.betterbird.Betterbird -calendar",
},
"battery": {
"bat": "BAT0",
"states": {
"good": 95,
"warning": 30,
"critical": 15,
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% 󰂄",
"format-plugged": "{capacity}%  ",
"format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "],
},
}
@@ -1,225 +0,0 @@
/* --- Hyprland palette (ported) --- */
@define-color base rgba(30, 30, 46, 1.0); /* 1e1e2eff */
@define-color inactive rgba(89, 89, 89, 0.667); /* 595959aa */
@define-color blue rgba(51, 204, 255, 0.933); /* 33ccffee */
@define-color green rgba(0, 255, 153, 0.933); /* 00ff99ee */
/* extra colors you referenced but didnt define */
@define-color text rgba(255, 255, 255, 1.0);
@define-color surface1 rgba(255, 255, 255, 0.08);
@define-color subtext1 rgba(255, 255, 255, 0.35);
@define-color red rgba(255, 0, 0, 0.90);
@define-color overlay1 rgba(255, 255, 255, 0.35);
@define-color yellow rgba(255, 215, 0, 0.95);
* {
font-family:
Aporetic Sans Mono,
Iosevka Nerd Font,
Roboto,
Helvetica,
Arial,
sans-serif;
font-size: 13px;
}
window#waybar {
background-color: transparent;
color: @text;
transition-property: background-color;
border-bottom: 0px solid rgba(0, 0, 0, 0);
transition-duration: 0.5s;
}
#workspaces button {
padding: 0px 1px;
min-width: 80px;
background-color: transparent;
color: @text;
border: 2px solid @inactive;
border-radius: 10px;
}
#custom-notifications.empty {
color: @overlay1;
}
#custom-notifications.unread {
color: @yellow;
}
#workspaces button:hover {
background-color: @surface1;
color: @text;
}
#workspaces button.active {
padding: 0px 1px;
min-width: 80px;
color: @text;
border-radius: 10px;
font-weight: bold;
border: 1px solid transparent;
background:
linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.15))
padding-box,
linear-gradient(45deg, @blue, @green) border-box;
}
#custom-hyprscroll_overflow.overflow {
padding: 0px 1px;
min-width: 80px;
color: @text;
border-radius: 10px;
font-weight: bold;
border: 1px dashed transparent;
background:
linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))
padding-box,
linear-gradient(45deg, @blue, @green) border-box;
}
#custom-hyprscroll_overflow.overflow {
background:
linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))
padding-box,
linear-gradient(45deg, @blue, @green) border-box;
}
#custom-hyprscroll_overflow.hidden {
padding: 0;
margin: 0;
min-width: 0;
border: 0;
background: transparent;
opacity: 0;
}
#clock,
#idle_inhibitor,
#battery,
#cpu,
#memory,
#temperature,
#network,
#pulseaudio,
#tray {
margin: 0 5px;
padding: 0 2px;
}
#idle_inhibitor.activated {
background-color: @green;
}
#battery.charging {
color: @green;
}
@keyframes blink {
to {
background-color: #ffffff;
color: black;
}
}
#battery.warning:not(.charging) {
color: white;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#window,
#workspaces {
margin: 0 4px;
}
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#network.disconnected {
background-color: @red;
}
#temperature.critical {
background-color: @red;
}
/* =========================================================
* Notifications
* ========================================================= */
#custom-notifications {
margin: 0 4px;
padding: 0 4px;
min-width: 0;
}
#custom-notifications.empty {
color: @overlay1;
}
#custom-notifications.unread {
color: @yellow;
}
/* =========================================================
* Hyprscroll overflow indicator (custom/hyprscroll_overflow)
* States: .ok, .overflow, .error
* ========================================================= */
/* Default (no overflow): subtle pill, still hoverable for tooltip */
#custom-hyprscroll_overflow.ok {
padding: 0px 1px;
min-width: 80px;
color: @subtext1;
border-radius: 10px;
/* subtle outline so you know it's there */
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.03);
}
/* Make it feel interactive (hover) */
#custom-hyprscroll_overflow.ok:hover {
color: @text;
background-color: @surface1;
border: 1px solid rgba(255, 255, 255, 0.18);
}
/* Overflow state: you already have this; keep it.
Optional: add hover tweak so it "pops" a bit. */
#custom-hyprscroll_overflow.overflow:hover {
background:
linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1))
padding-box,
linear-gradient(45deg, @blue, @green) border-box;
}
/* Error state: clear but not screaming */
#custom-hyprscroll_overflow.error {
padding: 0px 1px;
min-width: 80px;
color: @text;
border-radius: 10px;
border: 1px solid rgba(255, 0, 0, 0.55);
background: rgba(255, 0, 0, 0.15);
font-weight: bold;
}
/* Optional: if you keep .hidden in the script for any reason */
#custom-hyprscroll_overflow.hidden {
padding: 0;
margin: 0;
min-width: 0;
border: 0;
background: transparent;
opacity: 0;
}
@@ -1,41 +0,0 @@
[global]
allow_images = true
allow_markup = true
show_drun = true:apps,false:others
show_run = true
show_files = false
show_windowed = false
show_dmenu = false
show_ssh = false
show_power = false
prompt=Layout
hide_scroll=true
no_actions=true
width = 800
height = 600
# Center on the active monitor
location=center
anchor=center
lines = 10
columns = 1
sort_order = last-used
sort_method = fuzzy
allow_scrolling = true
scroll_wrap = true
scroll_step = 10
cycle = true
hide_scroll = false
hide_search = false
show_labels = true
label_search = true
label_run = Run
label_files = Files
label_windowed = Windows
label_drun = Applications
label_dmenu = Commands
label_ssh = SSH
label_power = Power
prompt = >
@@ -1,80 +0,0 @@
/* Catppuccin Mocha theme for Wofi with transparency and rounded corners */
@define-color base rgba(30, 30, 46, 0.9); /* Added transparency */
@define-color surface0 rgba(49, 50, 68, 0.95); /* Added transparency */
@define-color surface1 #45475A;
@define-color surface2 #585B70;
@define-color text #CDD6F4;
@define-color lavender #B4BEFE;
@define-color blue #89B4FA;
@define-color sapphire #74C7EC;
@define-color teal #94E2D5;
@define-color green #A6E3A1;
@define-color yellow #F9E2AF;
@define-color peach #FAB387;
@define-color maroon #EBA0AC;
@define-color red #F38BA8;
@define-color mauve #CBA6F7;
@define-color pink #F5C2E7;
@define-color flamingo #F2CDCD;
@define-color rosewater #F5E0DC;
* {
background-color: transparent;
color: @text;
font-family: "JetBrainsMono Nerd Font", monospace;
font-size: 12pt;
}
#main {
background-color: @base;
border: 1px solid @surface0;
border-radius: 10px; /* Rounded corners */
padding: 20px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}
#input {
background-color: @surface0;
color: @text;
border: 1px solid @surface1;
border-radius: 10px; /* Rounded corners */
padding: 5px 10px;
margin-bottom: 10px;
}
#entry {
background-color: rgba(
200,
200,
200,
0.2
); /* very light grey, very transparent */
color: @text;
border-radius: 10px;
padding: 5px 10px;
margin: 2px 0;
}
#entry:focus {
background-color: @surface1;
color: @lavender;
border-radius: 10px; /* Rounded corners */
}
#entry:selected {
background-color: @surface2;
color: @text;
border-radius: 10px; /* Rounded corners */
}
#scrollbar {
background-color: @surface0;
border-radius: 10px; /* Rounded corners */
width: 8px;
}
#scrollbar.handle {
background-color: @blue;
border-radius: 10px; /* Rounded corners */
}
@@ -1,26 +0,0 @@
# Catppuccin Mocha colors
local mocha_base="#1E1E2E"
local mocha_surface0="#313244"
local mocha_text="#CDD6F4"
local mocha_lavender="#B4BEFE"
local mocha_blue="#89B4FA"
local mocha_sapphire="#74C7EC"
local mocha_teal="#94D2D5"
local mocha_green="#A6E3A1"
local mocha_yellow="#F9E2AF"
local mocha_peach="#FAB387"
local mocha_maroon="#EBA0AC"
local mocha_red="#F38BA8"
local mocha_mauve="#CBA6F7"
local mocha_pink="#F5E2C7"
local mocha_flamingo="#F2CDCD"
local mocha_rosewater="#F5E0DC"
# Prompt
PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} '
RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}'
# Source zsh-syntax-highlighting if present
if [ -f ${files."zsh-syntax-highlighting".src} ]; then
source ${files."zsh-syntax-highlighting".src}
fi
@@ -1 +0,0 @@
07966035-a4dd-481b-88fd-74edaef0871c
@@ -1,3 +0,0 @@
2026/03/25-19:40:15.601 942 Reusing MANIFEST /home/henrov/.config/1Password/Local Storage/leveldb/MANIFEST-000001
2026/03/25-19:40:15.612 942 Recovering log #3
2026/03/25-19:40:15.613 942 Reusing old log /home/henrov/.config/1Password/Local Storage/leveldb/000003.log
@@ -1,2 +0,0 @@
2026/03/25-18:39:41.651 fdb Creating DB /home/henrov/.config/1Password/Local Storage/leveldb since it was missing.
2026/03/25-18:39:41.663 fdb Reusing MANIFEST /home/henrov/.config/1Password/Local Storage/leveldb/MANIFEST-000001
@@ -1 +0,0 @@
{"net":{"http_server_properties":{"servers":[{"anonymization":[],"server":"https://redirector.gvt1.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13421529582190448","port":443,"protocol_str":"quic"}],"anonymization":[],"network_stats":{"srtt":7104},"server":"https://r3---sn-32o-bg9e.gvt1.com"}],"supports_quic":{"address":"192.168.2.92","used_quic":true},"version":5},"network_qualities":{"CAISABiAgICA+P////8B":"4G"}}}
@@ -1,3 +0,0 @@
2026/03/25-19:40:15.712 960 Reusing MANIFEST /home/henrov/.config/1Password/Partitions/1password/Local Storage/leveldb/MANIFEST-000001
2026/03/25-19:40:15.713 960 Recovering log #3
2026/03/25-19:40:15.713 960 Reusing old log /home/henrov/.config/1Password/Partitions/1password/Local Storage/leveldb/000003.log
@@ -1,2 +0,0 @@
2026/03/25-18:39:41.812 ff9 Creating DB /home/henrov/.config/1Password/Partitions/1password/Local Storage/leveldb since it was missing.
2026/03/25-18:39:41.815 ff9 Reusing MANIFEST /home/henrov/.config/1Password/Partitions/1password/Local Storage/leveldb/MANIFEST-000001
@@ -1 +0,0 @@
{"net":{"http_server_properties":{"servers":[{"anonymization":[],"server":"https://redirector.gvt1.com","supports_spdy":true},{"alternative_service":[{"advertised_alpns":["h3"],"expiration":"13421529585677131","port":443,"protocol_str":"quic"}],"anonymization":[],"network_stats":{"srtt":7118},"server":"https://r3---sn-32o-bg9e.gvt1.com"}],"supports_quic":{"address":"192.168.2.92","used_quic":true},"version":5},"network_qualities":{"CAISABiAgICA+P////8B":"4G"}}}
@@ -1 +0,0 @@
{"migrated_user_scripts_toggle":true,"partition":{"per_host_zoom_levels":{"16137922565171788867":{}}},"spellcheck":{"dictionaries":["en-US"],"dictionary":""}}
@@ -1,3 +0,0 @@
2026/03/25-19:40:16.221 942 Reusing MANIFEST /home/henrov/.config/1Password/Partitions/1password/Session Storage/MANIFEST-000001
2026/03/25-19:40:16.221 942 Recovering log #3
2026/03/25-19:40:16.221 942 Reusing old log /home/henrov/.config/1Password/Partitions/1password/Session Storage/000003.log
@@ -1,2 +0,0 @@
2026/03/25-18:39:42.267 ff9 Creating DB /home/henrov/.config/1Password/Partitions/1password/Session Storage since it was missing.
2026/03/25-18:39:42.270 ff9 Reusing MANIFEST /home/henrov/.config/1Password/Partitions/1password/Session Storage/MANIFEST-000001
@@ -1 +0,0 @@
{"migrated_user_scripts_toggle":true,"spellcheck":{"dictionaries":["en-US"],"dictionary":""}}

Some files were not shown because too many files have changed in this diff Show More