Deleted old copy
@@ -0,0 +1,301 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Droidnix: Complete Emacs setup for Nix/Org tangling, HTML export, and a great editing experience
|
||||
# For NixOS systems
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
# Install Emacs and git via nix-shell (no apt-get)
|
||||
if ! command -v emacs &> /dev/null; then
|
||||
echo "Emacs not found. Installing Emacs and git via nix-shell..."
|
||||
nix-shell -p emacs git --run "$0" "$@"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Create a minimal Emacs config for package installation
|
||||
TEMP_CONFIG=$(mktemp /tmp/droidnix-emacs-setup.XXXXXX.el)
|
||||
cat > "$TEMP_CONFIG" << 'EOF'
|
||||
;; Minimal config for installing packages
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
||||
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
|
||||
(package-initialize)
|
||||
EOF
|
||||
|
||||
# Install packages in batch mode
|
||||
echo "Installing Emacs packages..."
|
||||
emacs --batch \
|
||||
--load "$TEMP_CONFIG" \
|
||||
--eval "(package-refresh-contents)" \
|
||||
--eval "(package-install 'use-package)" \
|
||||
--eval "(package-install 'org)" \
|
||||
--eval "(package-install 'nix-mode)" \
|
||||
--eval "(package-install 'htmlize)" \
|
||||
--eval "(package-install 'catppuccin-theme)" \
|
||||
--eval "(package-install 'org-bullets)" \
|
||||
--eval "(package-install 'magit)" \
|
||||
--eval "(package-install 'company)" \
|
||||
--eval "(package-install 'flycheck)" \
|
||||
--eval "(package-install 'doom-modeline)" \
|
||||
--eval "(package-install 'which-key)" \
|
||||
--eval "(package-install 'projectile)" \
|
||||
--eval "(package-install 'ivy)" \
|
||||
--eval "(package-install 'counsel)" \
|
||||
--eval "(package-install 'all-the-icons)" \
|
||||
--eval "(package-install 'doom-themes)" \
|
||||
--eval "(package-install 'treemacs)" \
|
||||
--eval "(package-install 'lsp-mode)" \
|
||||
--eval "(package-install 'dashboard)"
|
||||
|
||||
# Create a post-install config for interactive use
|
||||
USER_EMACSCONFIG="${HOME}/.emacs.d/init.el"
|
||||
if [ ! -f "$USER_EMACSCONFIG" ]; then
|
||||
mkdir -p "${HOME}/.emacs.d"
|
||||
cat > "$USER_EMACSCONFIG" << 'EOF'
|
||||
;; Droidnix Emacs Configuration for NixOS
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
||||
(package-initialize)
|
||||
|
||||
;; Basic UI improvements
|
||||
(tool-bar-mode -1) ; Disable toolbar
|
||||
(menu-bar-mode -1) ; Disable menu bar
|
||||
(scroll-bar-mode -1) ; Disable scroll bar
|
||||
(setq inhibit-startup-message t) ; Disable startup message
|
||||
(setq make-backup-files nil) ; Disable backup files
|
||||
(setq auto-save-default nil) ; Disable auto-save files
|
||||
|
||||
;; Enable Catppuccin Mocha theme
|
||||
(when (fboundp 'load-theme)
|
||||
(ignore-errors
|
||||
(load-theme 'catppuccin-mocha t)
|
||||
(setq catppuccin-disable-term-colors nil)
|
||||
(setq catppuccin-enable-bold t)
|
||||
(setq catppuccin-enable-italic t)))
|
||||
|
||||
;; Enable Doom Modeline
|
||||
(when (fboundp 'doom-modeline-mode)
|
||||
(doom-modeline-mode 1))
|
||||
|
||||
;; Enable All The Icons
|
||||
(when (fboundp 'all-the-icons-install-fonts)
|
||||
(all-the-icons-install-fonts)
|
||||
(global-all-the-icons-mode))
|
||||
|
||||
;; Enable Treemacs
|
||||
(when (fboundp 'treemacs)
|
||||
(treemacs-mode)
|
||||
(setq treemacs-width 30)
|
||||
(setq treemacs-position 'left)
|
||||
(setq treemacs-space-between-root-nodes nil)
|
||||
(setq treemacs-indent-level 2)
|
||||
(setq treemacs-file-follow-delay 0.1)
|
||||
(setq treemacs-git-icon-enabled t)
|
||||
(setq treemacs-project-follow t)
|
||||
(setq treemacs-display-project-root t)
|
||||
(setq treemacs-show-hidden-files t))
|
||||
|
||||
;; Enable Company for autocomplete
|
||||
(when (fboundp 'company-mode)
|
||||
(global-company-mode)
|
||||
(setq company-idle-delay 0.1)
|
||||
(setq company-minimum-prefix-length 1))
|
||||
|
||||
;; Enable Flycheck for syntax checking
|
||||
(when (fboundp 'flycheck-mode)
|
||||
(global-flycheck-mode)
|
||||
(setq flycheck-check-syntax-automatically '(save mode-enabled))
|
||||
(setq flycheck-display-errors-delay 0.5))
|
||||
|
||||
;; Enable Ivy + Counsel for better completion
|
||||
(when (fboundp 'ivy-mode)
|
||||
(ivy-mode 1)
|
||||
(setq ivy-use-virtual-buffers t)
|
||||
(setq ivy-count-format "(%d/%d) ")
|
||||
(setq ivy-height 10)
|
||||
(when (fboundp 'counsel-mode)
|
||||
(counsel-mode 1)))
|
||||
|
||||
;; Enable Projectile for project management
|
||||
(when (fboundp 'projectile-mode)
|
||||
(projectile-mode +1)
|
||||
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
|
||||
(setq projectile-completion-system 'ivy)
|
||||
(setq projectile-switch-project-action 'projectile-dired))
|
||||
|
||||
;; Enable Which Key for keybindings help
|
||||
(when (fboundp 'which-key-mode)
|
||||
(which-key-mode 1)
|
||||
(setq which-key-idle-delay 0.5)
|
||||
(setq which-key-show-major-modes nil))
|
||||
|
||||
;; Configure Org Mode with Babel support for Nix and Shell
|
||||
(require 'org)
|
||||
(require 'ob-shell) ; Required for shell code blocks
|
||||
(require 'ob-nix) ; Required for nix code blocks
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((emacs-lisp . t)
|
||||
(nix . t)
|
||||
(shell . t)
|
||||
(python . t)
|
||||
(dockerfile . t)))
|
||||
(setq org-babel-tangle-lang-exts '(("nix" . "nix")))
|
||||
(setq org-src-fontify-natively t)
|
||||
(setq org-src-tab-act-as-tab t)
|
||||
(setq org-edit-src-content-indentation 0)
|
||||
(setq org-startup-indented t)
|
||||
(setq org-startup-folded nil)
|
||||
(setq org-ellipsis "⤵")
|
||||
(setq org-hide-emphasis-markers t)
|
||||
(setq org-image-actual-width nil)
|
||||
(setq org-html-htmlize-output-type 'css)
|
||||
(setq org-export-with-toc nil)
|
||||
(setq org-todo-keywords '("TODO" "DOING" "|" "DONE" "CANCELED"))
|
||||
(setq org-log-done 'time)
|
||||
(setq org-directory "~/org")
|
||||
(when (fboundp 'org-bullets-mode)
|
||||
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
|
||||
|
||||
;; Enable Magit for Git
|
||||
(when (fboundp 'magit-version)
|
||||
(setq magit-display-buffer-function 'magit-display-buffer-fullscreen)
|
||||
(setq magit-last-seen-setup-instruction "1.4.0"))
|
||||
|
||||
;; Enable LSP Mode for language server support
|
||||
(when (fboundp 'lsp-mode)
|
||||
(lsp-mode 1)
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
(setq lsp-enable-snippets nil)
|
||||
(setq lsp-enable-indentation nil)
|
||||
(setq lsp-enable-on-type-formatting nil)
|
||||
(setq lsp-lens-enable nil)
|
||||
(setq lsp-signature-auto-activate nil))
|
||||
|
||||
;; Enable Dashboard
|
||||
(when (fboundp 'dashboard-refresh-buffer)
|
||||
(dashboard-mode 1)
|
||||
(setq dashboard-items '((recents . 5)
|
||||
(projects . 5)
|
||||
(agenda . 5)
|
||||
(bookmarks . 5)))
|
||||
(setq dashboard-center-content t)
|
||||
(setq dashboard-banner-logo-title "Droidnix Configuration"))
|
||||
|
||||
;; Enable Nix Mode
|
||||
(when (fboundp 'nix-mode)
|
||||
(setq auto-mode-alist (cons '("\\.nix\\'" . nix-mode) auto-mode-alist))
|
||||
(add-to-list 'auto-mode-alist '("\\.nix\\'" . nix-mode)))
|
||||
|
||||
;; Custom keybindings
|
||||
(global-set-key (kbd "C-c t") 'treemacs)
|
||||
(global-set-key (kbd "C-c p") 'projectile-command-map)
|
||||
(global-set-key (kbd "C-c g") 'magit-status)
|
||||
(global-set-key (kbd "C-c d") 'dashboard-refresh-buffer)
|
||||
(global-set-key (kbd "C-c b") 'ivy-switch-buffer)
|
||||
(global-set-key (kbd "C-c f") 'find-file)
|
||||
(global-set-key (kbd "C-c s") 'save-buffer)
|
||||
(global-set-key (kbd "C-c q") 'kill-buffer)
|
||||
(global-set-key (kbd "C-c w") 'widen)
|
||||
(global-set-key (kbd "C-c n") 'narrow-to-region)
|
||||
|
||||
;; Nix-specific configurations
|
||||
(setq nix-indent-width 2)
|
||||
(setq nix-continuation-indent-width 4)
|
||||
|
||||
;; HTML export settings for Org
|
||||
(setq org-html-head-include-default-style nil)
|
||||
(setq org-html-head-extra "
|
||||
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/tree.js@1.0.0/dist/tree.min.css\">
|
||||
<script src=\"https://cdn.jsdelivr.net/npm/tree.js@1.0.0/dist/tree.min.js\"></script>
|
||||
<style>
|
||||
.tree { font-family: monospace; white-space: pre; }
|
||||
#table-of-contents { display: none; }
|
||||
.org-src-container { background-color: #313244; color: #cdd6f4; padding: 1em; border-radius: 5px; }
|
||||
pre.src { background-color: #313244; padding: 1em; border-radius: 5px; }
|
||||
</style>")
|
||||
|
||||
;; Function to wrap tree output in div for HTML export
|
||||
(defun my/org-wrap-tree-in-div ()
|
||||
"Wrap the Nix tree output in a div with class 'tree' for HTML export."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(when (re-search-forward "#+RESULTS:\n#+BEGIN_EXAMPLE\n\\(.*?\n\\)#+END_EXAMPLE" nil t)
|
||||
(goto-char (match-beginning 1))
|
||||
(insert "#+HTML: <div class=\"tree\">\n")
|
||||
(goto-char (match-end 1))
|
||||
(insert "#+HTML: </div>\n"))))
|
||||
|
||||
;; Add hook to automatically wrap tree output on export
|
||||
(add-hook 'org-export-before-processing-hook 'my/org-wrap-tree-in-div)
|
||||
|
||||
;; Set default mode for new buffers
|
||||
(setq-default major-mode 'text-mode)
|
||||
(setq-default indent-tabs-mode nil)
|
||||
(setq default-tab-width 2)
|
||||
(setq tab-width 2)
|
||||
|
||||
;; Enable line numbers globally
|
||||
(global-display-line-numbers-mode 1)
|
||||
(setq display-line-numbers-type 'relative)
|
||||
|
||||
;; Configure fill column indicator
|
||||
(setq display-fill-column-indicator t)
|
||||
(setq display-fill-column-indicator-character ?│)
|
||||
(setq fill-column 80)
|
||||
|
||||
;; Enable delete-selection-mode for more intuitive editing
|
||||
(delete-selection-mode 1)
|
||||
|
||||
;; Configure modeline
|
||||
(setq display-time-day-and-date t)
|
||||
(setq display-time-24hr-format t)
|
||||
|
||||
;; Configure frame appearance
|
||||
(setq default-frame-alist '((fullscreen . maximized)
|
||||
(alpha . (95 95))
|
||||
(vertical-scroll-bars . nil)
|
||||
(tool-bar-lines . 0)
|
||||
(menu-bar-lines . 0)
|
||||
(line-spacing . 3)
|
||||
(font . "Fira Code-12")))
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Clean up
|
||||
rm "$TEMP_CONFIG"
|
||||
|
||||
echo ""
|
||||
echo "Emacs setup complete with Catppuccin Mocha and all plugins!"
|
||||
echo ""
|
||||
echo "Installed packages:"
|
||||
echo " ✅ Catppuccin Mocha (theme)"
|
||||
echo " ✅ Org mode + Org Bullets + Org Babel (Nix/Shell support)"
|
||||
echo " ✅ Magit (Git interface)"
|
||||
echo " ✅ Company (autocomplete)"
|
||||
echo " ✅ Flycheck (syntax checking)"
|
||||
echo " ✅ Doom Modeline (status bar)"
|
||||
echo " ✅ Which Key (keybindings help)"
|
||||
echo " ✅ Projectile (project management)"
|
||||
echo " ✅ Ivy + Counsel (completion framework)"
|
||||
echo " ✅ All The Icons (pretty icons)"
|
||||
echo " ✅ Treemacs (file tree)"
|
||||
echo " ✅ LSP Mode (language server)"
|
||||
echo " ✅ ob-shell + ob-nix (Org Babel support)"
|
||||
echo " ✅ Dashboard (start page)"
|
||||
echo " ✅ tree.js (for collapsible directory trees in HTML export)"
|
||||
echo ""
|
||||
echo "You can now:"
|
||||
echo "1. Tangle Org files: emacs README.org --batch -f org-babel-tangle"
|
||||
echo "2. Export to HTML: emacs -Q --batch README.org -f org-html-export-to-html"
|
||||
echo "3. Open Emacs: emacs"
|
||||
echo ""
|
||||
echo "The configuration includes:"
|
||||
echo "- Proper Org Babel support for shell and Nix"
|
||||
echo "- Tree.js integration for collapsible directory trees in HTML export"
|
||||
echo "- Custom keybindings for common operations"
|
||||
echo "- Enhanced UI with Treemacs, Doom Modeline, and Catppuccin theme"
|
||||
echo "- Optimized settings for Nix development"
|
||||
echo "- HTML export with embedded CSS for better styling"
|
||||
@@ -0,0 +1,22 @@
|
||||
##############################################
|
||||
# These files are just for reference.
|
||||
# If you want to change anything, edit the source files in:
|
||||
# ~/henrovnix/assets/conf
|
||||
#
|
||||
# After that, run:
|
||||
# cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .#<yourhost>
|
||||
#
|
||||
# If everything still works, you can use the same command but:
|
||||
# - keep "switch"
|
||||
# - and add a reboot:
|
||||
#
|
||||
# cd ~/henrovnix && sudo nixos-rebuild switch --flake .#<yourhost> && systemctl reboot
|
||||
#
|
||||
# NOTE:
|
||||
# Make sure the lines starting with: cd ~/henrovnix
|
||||
# are written as ONE single line.
|
||||
##############################################
|
||||
#app.zen_browser.zen
|
||||
com.github.tchx84.Flatseal
|
||||
eu.betterbird.Betterbird
|
||||
com.todoist.Todoist
|
||||
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Install Neovim and Neovide using nix-env with the correct attribute path for NixOS
|
||||
echo "Installing Neovim and Neovide..."
|
||||
nix-env -iA nixos.neovim nixos.neovide
|
||||
|
||||
# Create Neovim config directory
|
||||
NVIM_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/nvim"
|
||||
mkdir -p "$NVIM_CONFIG_DIR"
|
||||
|
||||
# Install packer.nvim (plugin manager)
|
||||
PACKER_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/nvim/site/pack/packer/start/packer.nvim"
|
||||
if [ ! -d "$PACKER_DIR" ]; then
|
||||
echo "Installing packer.nvim..."
|
||||
git clone --depth 1 https://github.com/wbthomason/packer.nvim "$PACKER_DIR"
|
||||
fi
|
||||
|
||||
# Write minimal init.lua for literate NixOS
|
||||
cat > "$NVIM_CONFIG_DIR/init.lua" << 'EOF'
|
||||
-- Enable filetype detection, syntax highlighting, and indenting
|
||||
vim.cmd([[
|
||||
filetype plugin indent on
|
||||
syntax on
|
||||
]])
|
||||
|
||||
-- Leader key
|
||||
vim.g.mapleader = " "
|
||||
|
||||
-- Install plugins with Packer
|
||||
local fn = vim.fn
|
||||
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||
local packer_bootstrap = false
|
||||
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
packer_bootstrap = fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
end
|
||||
|
||||
require('packer').startup(function(use)
|
||||
-- Plugin manager
|
||||
use 'wbthomason/packer.nvim'
|
||||
|
||||
-- Catppuccin theme
|
||||
use { 'catppuccin/nvim', as = 'catppuccin' }
|
||||
|
||||
-- Orgmode for literate NixOS
|
||||
use {
|
||||
'nvim-orgmode/orgmode',
|
||||
config = function()
|
||||
require('orgmode').setup({
|
||||
org_agenda_files = {'~/Documents/org/*'},
|
||||
org_default_notes_file = '~/Documents/org/notes.org',
|
||||
})
|
||||
end
|
||||
}
|
||||
|
||||
-- Treesitter (better syntax highlighting)
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = ':TSUpdate',
|
||||
config = function()
|
||||
require('nvim-treesitter.configs').setup({
|
||||
ensure_installed = {'nix', 'org'},
|
||||
highlight = { enable = true },
|
||||
})
|
||||
end
|
||||
}
|
||||
|
||||
-- LSP (for Nix language server)
|
||||
use {
|
||||
'neovim/nvim-lspconfig',
|
||||
config = function()
|
||||
require('lspconfig').nil_ls.setup({})
|
||||
end
|
||||
}
|
||||
|
||||
-- Telescope (fuzzy finder)
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
requires = {{'nvim-lua/plenary.nvim'}}
|
||||
}
|
||||
|
||||
-- Automatically set up after cloning packer.nvim
|
||||
if packer_bootstrap then
|
||||
require('packer').sync()
|
||||
end
|
||||
end)
|
||||
|
||||
-- Set Catppuccin theme
|
||||
vim.cmd.colorscheme('catppuccin-mocha')
|
||||
|
||||
-- Keybindings for orgmode
|
||||
vim.api.nvim_set_keymap('n', '<leader>oo', '<cmd>lua require("orgmode").action("agenda.prompt")<cr>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>oc', '<cmd>lua require("orgmode").action("capture.prompt")<cr>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>ot', '<cmd>lua require("orgmode").action("tangle.current_file")<cr>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<leader>oe', '<cmd>lua require("orgmode").action("export.current_file")<cr>', { noremap = true, silent = true })
|
||||
|
||||
-- Auto-install LSP and Treesitter parsers on first run
|
||||
vim.api.nvim_create_autocmd('BufEnter', {
|
||||
pattern = {'*.nix', '*.org'},
|
||||
callback = function()
|
||||
vim.cmd('TSInstall! nix')
|
||||
vim.cmd('TSInstall! org')
|
||||
end,
|
||||
})
|
||||
EOF
|
||||
|
||||
# Install nil (Nix language server)
|
||||
echo "Installing nil (Nix language server)..."
|
||||
nix-env -iA nixos.nil
|
||||
|
||||
# Install Neovide config (optional)
|
||||
NEOVIDE_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/neovide"
|
||||
mkdir -p "$NEOVIDE_CONFIG_DIR"
|
||||
cat > "$NEOVIDE_CONFIG_DIR/config.toml" << 'EOF'
|
||||
[editor]
|
||||
theme = "catppuccin-mocha"
|
||||
EOF
|
||||
|
||||
echo "Setup complete!"
|
||||
echo "Run 'nvim' or 'neovide' to start."
|
||||
echo "In Neovim, run ':PackerSync' to install plugins."
|
||||
@@ -0,0 +1,48 @@
|
||||
#productivity
|
||||
todoist
|
||||
|
||||
# browsers
|
||||
brave
|
||||
chromium
|
||||
|
||||
# utils
|
||||
ripgrep
|
||||
wget
|
||||
kdePackages.kdeconnect-kde
|
||||
_1password-gui
|
||||
tree
|
||||
gparted
|
||||
file
|
||||
htop
|
||||
btop
|
||||
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
|
||||
@@ -0,0 +1,84 @@
|
||||
# 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
|
||||
@@ -0,0 +1,72 @@
|
||||
##############################################
|
||||
# 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'
|
||||
@@ -0,0 +1,15 @@
|
||||
##############################################
|
||||
# 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
|
||||
@@ -0,0 +1,3 @@
|
||||
# Droidnix Base Configuration
|
||||
# Choose your window manager: hyprland or mangowc
|
||||
wm = "hyprland"
|
||||
@@ -0,0 +1,127 @@
|
||||
: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);
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
;; 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))
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,84 @@
|
||||
# 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
|
||||
@@ -0,0 +1,15 @@
|
||||
# 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
|
||||
@@ -0,0 +1,277 @@
|
||||
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"
|
||||
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"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": ["", "", "", "", " "],
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
/* --- 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 didn’t 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;
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/* 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: transparent;
|
||||
color: @text;
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
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 */
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
[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
|
||||
|
||||
width = 800
|
||||
height = 600
|
||||
# Center on the active monitor
|
||||
x = 50%
|
||||
y = 50%
|
||||
|
||||
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 = >
|
||||
@@ -0,0 +1 @@
|
||||
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/nixos_conf/wallpaperstuff/pictures/5.jpg
|
||||
@@ -0,0 +1 @@
|
||||
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/nixos_conf/wallpaperstuff/pictures/6.jpg
|
||||
|
After Width: | Height: | Size: 94 KiB |
@@ -0,0 +1 @@
|
||||
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/nixos_conf/wallpaperstuff/pictures/7.jpg
|
||||
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 391 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 382 KiB |
|
After Width: | Height: | Size: 224 KiB |
|
After Width: | Height: | Size: 221 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 133 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 112 KiB |
@@ -0,0 +1 @@
|
||||
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/nixos_conf/wallpaperstuff/videos/dark_water_large.mp4
|
||||
@@ -0,0 +1 @@
|
||||
/nix/store/9cznk9vc494karcb2pq7sccallv76m82-home-manager-files/nixos_conf/wallpaperstuff/videos/white_blobs_small.mp4
|
||||
@@ -0,0 +1 @@
|
||||
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/nixos_conf/wallpaperstuff/videos/white_blobs_small.mp4
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
# Source and destination directories
|
||||
SOURCE_DIR="/home/henrov/Repos/nixos/henrovnix_ok/assets/copy_stuff/"
|
||||
DEST_DIR="/home/henrov/"
|
||||
# Check if source directory exists
|
||||
if [ ! -d "$SOURCE_DIR" ]; then
|
||||
echo "Error: Source directory $SOURCE_DIR does not exist."
|
||||
exit 1
|
||||
fi
|
||||
# Use rsync to copy files, overwriting symlinks and existing files
|
||||
# --no-group --no-owner preserves your user ownership
|
||||
rsync -av --no-group --no-owner "$SOURCE_DIR/" "$DEST_DIR/"
|
||||
echo "Config files copied from $SOURCE_DIR to $DEST_DIR. Symlinks replaced with editable files."
|
||||
|
||||
pkill waybar && waybar &
|
||||
hyprctl reload
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
set -euo pipefail
|
||||
|
||||
#creating a timestamp-file to see whether this script ran
|
||||
TIMESTAMP_FILE="/home/henrov/nixos_conf/nixos_timestamp.txt"
|
||||
date +"%Y-%m-%d %H:%M:%S" > "$TIMESTAMP_FILE"
|
||||
echo "File $TIMESTAMP_FILE created"
|
||||
|
||||
#cleaning up .backup files (do not worry, they exist safely in ./assets/copy_stuff/.config)
|
||||
find /home/henrov/.config -name "*.backup" -delete
|
||||
echo "~/.config/*.backup files deleted"
|
||||
|
||||
#copying stuff from assets/copy_stuff to ~
|
||||
echo "Now in path $(pwd)"
|
||||
COPY_SCRIPT="/home/henrov/Repos/nixos/henrovnix_ok/assets/scripts/copy_stuff.sh"
|
||||
if [ ! -f "$COPY_SCRIPT" ]; then
|
||||
echo "Error: Script $COPY_SCRIPT does not exist."
|
||||
exit 1
|
||||
fi
|
||||
"$COPY_SCRIPT"
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/run/current-system/sw/bin/bash
|
||||
|
||||
# Get a list of available Wi-Fi networks
|
||||
networks=$(nmcli -t -f SSID device wifi list)
|
||||
|
||||
# Show the list using wofi with dmenu mode
|
||||
selected=$(echo "$networks" | wofi --show dmenu --width=300 --height=500 --prompt="Select a network")
|
||||
|
||||
# Connect to the selected network with the --ask option
|
||||
if [ -n "$selected" ]; then
|
||||
nmcli --ask device wifi connect "$selected"
|
||||
fi
|
||||
@@ -0,0 +1,21 @@
|
||||
system: "base16"
|
||||
name: "Catppuccin Mocha"
|
||||
author: "https://github.com/catppuccin/catppuccin"
|
||||
variant: "dark"
|
||||
palette:
|
||||
base00: "#1e1e2e" # base
|
||||
base01: "#181825" # mantle
|
||||
base02: "#313244" # surface0
|
||||
base03: "#45475a" # surface1
|
||||
base04: "#585b70" # surface2
|
||||
base05: "#cdd6f4" # text
|
||||
base06: "#f5e0dc" # rosewater
|
||||
base07: "#b4befe" # lavender
|
||||
base08: "#f38ba8" # red
|
||||
base09: "#fab387" # peach
|
||||
base0A: "#f9e2af" # yellow
|
||||
base0B: "#a6e3a1" # green
|
||||
base0C: "#94e2d5" # teal
|
||||
base0D: "#89b4fa" # blue
|
||||
base0E: "#cba6f7" # mauve
|
||||
base0F: "#f2cdcd" # flamingo
|
||||