feat!: move everything around to accomodate two system configurations in one repo
This commit is contained in:
		
							parent
							
								
									d735060641
								
							
						
					
					
						commit
						53a2609204
					
				
					 82 changed files with 1786 additions and 863 deletions
				
			
		
							
								
								
									
										38
									
								
								modules/home-manager/programs/alacritty.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								modules/home-manager/programs/alacritty.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  catppuccin-theme = pkgs.fetchFromGitHub {
 | 
			
		||||
    owner = "catppuccin";
 | 
			
		||||
    repo = "alacritty";
 | 
			
		||||
    rev = "94800165c13998b600a9da9d29c330de9f28618e";
 | 
			
		||||
    hash = "sha256-Pi1Hicv3wPALGgqurdTzXEzJNx7vVh+8B9tlqhRpR2Y=";
 | 
			
		||||
  };
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  programs.alacritty = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      import = [ "${catppuccin-theme}/catppuccin-frappe.toml" ];
 | 
			
		||||
 | 
			
		||||
      font = {
 | 
			
		||||
        normal = {
 | 
			
		||||
          family = "FantasqueSansM Nerd Font";
 | 
			
		||||
          style = "Regular";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        size = 13;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      window = {
 | 
			
		||||
        decorations = "None";
 | 
			
		||||
        opacity = 0.88;
 | 
			
		||||
        blur = true;
 | 
			
		||||
 | 
			
		||||
        padding = {
 | 
			
		||||
          x = 18;
 | 
			
		||||
          y = 18;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								modules/home-manager/programs/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/home-manager/programs/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./alacritty.nix
 | 
			
		||||
    ./direnv
 | 
			
		||||
    ./emacs
 | 
			
		||||
    ./fish
 | 
			
		||||
    ./git.nix
 | 
			
		||||
    ./hyprland
 | 
			
		||||
    ./mangohud.nix
 | 
			
		||||
    ./obs-studio.nix
 | 
			
		||||
    ./rofi
 | 
			
		||||
    ./spotify
 | 
			
		||||
    ./tmux
 | 
			
		||||
    ./waybar.nix
 | 
			
		||||
    ./neovim
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								modules/home-manager/programs/direnv/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/home-manager/programs/direnv/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.direnv = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    nix-direnv.enable = true;
 | 
			
		||||
 | 
			
		||||
    config = {
 | 
			
		||||
      whitelist = {
 | 
			
		||||
        prefix = [
 | 
			
		||||
          "/mnt/internal/personal/projects"
 | 
			
		||||
          "/mnt/internal/repos"
 | 
			
		||||
          "/mnt/internal/shared/projects"
 | 
			
		||||
          "/mnt/internal/shared/work"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								modules/home-manager/programs/emacs/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/home-manager/programs/emacs/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # CORE
 | 
			
		||||
    git
 | 
			
		||||
    emacs
 | 
			
		||||
    ripgrep
 | 
			
		||||
 | 
			
		||||
    # Optional for DOOM
 | 
			
		||||
    clang
 | 
			
		||||
    coreutils
 | 
			
		||||
    fd
 | 
			
		||||
 | 
			
		||||
    pandoc # For org-pandoc
 | 
			
		||||
    (aspellWithDicts (
 | 
			
		||||
      dicts: with dicts; [
 | 
			
		||||
        en
 | 
			
		||||
        pt_BR
 | 
			
		||||
      ]
 | 
			
		||||
    )) # for flyspell
 | 
			
		||||
    gnuplot_qt # for plotting graphs
 | 
			
		||||
    languagetool # for grammar
 | 
			
		||||
    ledger # for accounting and org-ledger
 | 
			
		||||
    gzip # Otherwise random errors occur from the onChange script
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Neatly place the configuration files for doom in their right place.
 | 
			
		||||
  xdg.configFile."doom" = {
 | 
			
		||||
    source = ./doom;
 | 
			
		||||
    recursive = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										103
									
								
								modules/home-manager/programs/emacs/doom/config.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								modules/home-manager/programs/emacs/doom/config.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,103 @@
 | 
			
		|||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
 | 
			
		||||
 | 
			
		||||
;; Place your private configuration here! Remember, you do not need to run 'doom
 | 
			
		||||
;; sync' after modifying this file!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
 | 
			
		||||
;; clients, file templates and snippets. It is optional.
 | 
			
		||||
(setq user-full-name "Alexandre Cavalheiro S. Tiago da Silva"
 | 
			
		||||
      user-mail-address "contact@thewizard.link")
 | 
			
		||||
 | 
			
		||||
;; Doom exposes five (optional) variables for controlling fonts in Doom:
 | 
			
		||||
;;
 | 
			
		||||
;; - `doom-font' -- the primary font to use
 | 
			
		||||
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
 | 
			
		||||
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
 | 
			
		||||
;;   presentations or streaming.
 | 
			
		||||
;; - `doom-symbol-font' -- for symbols
 | 
			
		||||
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
 | 
			
		||||
;;
 | 
			
		||||
;; See 'C-h v doom-font' for documentation and more examples of what they
 | 
			
		||||
;; accept. For example:
 | 
			
		||||
;;
 | 
			
		||||
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
 | 
			
		||||
;;      doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
 | 
			
		||||
;;
 | 
			
		||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
 | 
			
		||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
 | 
			
		||||
;; refresh your font settings. If Emacs still can't find your font, it likely
 | 
			
		||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
 | 
			
		||||
(setq doom-font (font-spec :family "FantasqueSansM Nerd Font" :size 16))
 | 
			
		||||
 | 
			
		||||
;; There are two ways to load a theme. Both assume the theme is installed and
 | 
			
		||||
;; available. You can either set `doom-theme' or manually load a theme with the
 | 
			
		||||
;; `load-theme' function. This is the default:
 | 
			
		||||
(setq doom-theme 'catppuccin)
 | 
			
		||||
 | 
			
		||||
;; This determines the style of line numbers in effect. If set to `nil', line
 | 
			
		||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
 | 
			
		||||
(setq display-line-numbers-type 'relative)
 | 
			
		||||
 | 
			
		||||
;; If you use `org' and don't want your org files in the default location below,
 | 
			
		||||
;; change `org-directory'. It must be set before org loads!
 | 
			
		||||
(setq org-directory "~/Documents/notes"
 | 
			
		||||
      org-agenda-files (doom-files-in `(,org-directory, "~/Documents/zettelkasten") :type 'files :match "\\.org\\'"))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
 | 
			
		||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
 | 
			
		||||
;;
 | 
			
		||||
;;   (after! PACKAGE
 | 
			
		||||
;;     (setq x y))
 | 
			
		||||
;;
 | 
			
		||||
;; The exceptions to this rule:
 | 
			
		||||
;;
 | 
			
		||||
;;   - Setting file/directory variables (like `org-directory')
 | 
			
		||||
;;   - Setting variables which explicitly tell you to set them before their
 | 
			
		||||
;;     package is loaded (see 'C-h v VARIABLE' to look up their documentation).
 | 
			
		||||
;;   - Setting doom variables (which start with 'doom-' or '+').
 | 
			
		||||
;;
 | 
			
		||||
;; Here are some additional functions/macros that will help you configure Doom.
 | 
			
		||||
;;
 | 
			
		||||
;; - `load!' for loading external *.el files relative to this one
 | 
			
		||||
;; - `use-package!' for configuring packages
 | 
			
		||||
;; - `after!' for running code after a package has loaded
 | 
			
		||||
;; - `add-load-path!' for adding directories to the `load-path', relative to
 | 
			
		||||
;;   this file. Emacs searches the `load-path' when you load packages with
 | 
			
		||||
;;   `require' or `use-package'.
 | 
			
		||||
;; - `map!' for binding new keys
 | 
			
		||||
;;
 | 
			
		||||
;; To get information about any of these functions/macros, move the cursor over
 | 
			
		||||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
 | 
			
		||||
;; This will open documentation for it, including demos of how they are used.
 | 
			
		||||
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
 | 
			
		||||
;; etc).
 | 
			
		||||
;;
 | 
			
		||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
 | 
			
		||||
;; they are implemented.
 | 
			
		||||
 | 
			
		||||
;; Set the tab size to 2
 | 
			
		||||
(setq tab-width 2)
 | 
			
		||||
 | 
			
		||||
;; Configure initial major mode for the scratch buffer
 | 
			
		||||
(setq initial-major-mode 'org-mode)
 | 
			
		||||
 | 
			
		||||
;; Configure orm-roam
 | 
			
		||||
(setq org-roam-directory "~/Documents/zettelkasten")
 | 
			
		||||
(map! (:leader :desc "Opens a daily note through the calendar" :n "nrdF" #'org-roam-dailies-find-date))
 | 
			
		||||
 | 
			
		||||
(use-package! org-roam-ui
 | 
			
		||||
  :after org-roam
 | 
			
		||||
  :config
 | 
			
		||||
  (setq org-roam-ui-sync-theme t
 | 
			
		||||
        org-roam-ui-follow t
 | 
			
		||||
        org-roam-ui-update-on-save t
 | 
			
		||||
        org-roam-ui-open-on-start t))
 | 
			
		||||
 | 
			
		||||
;; Configure doom-themes with treemacs
 | 
			
		||||
(with-eval-after-load 'doom-themes
 | 
			
		||||
  (doom-themes-treemacs-config))
 | 
			
		||||
 | 
			
		||||
;; Configure elfeed-org
 | 
			
		||||
(setq rmh-elfeed-org-files '("/home/wizardlink/Documents/notes/elfeed.org"))
 | 
			
		||||
							
								
								
									
										202
									
								
								modules/home-manager/programs/emacs/doom/init.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								modules/home-manager/programs/emacs/doom/init.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,202 @@
 | 
			
		|||
;;; init.el -*- lexical-binding: t; -*-
 | 
			
		||||
 | 
			
		||||
;; This file controls what Doom modules are enabled and what order they load
 | 
			
		||||
;; in. Remember to run 'doom sync' after modifying it!
 | 
			
		||||
 | 
			
		||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
 | 
			
		||||
;;      documentation. There you'll find a link to Doom's Module Index where all
 | 
			
		||||
;;      of our modules are listed, including what flags they support.
 | 
			
		||||
 | 
			
		||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
 | 
			
		||||
;;      'C-c c k' for non-vim users) to view its documentation. This works on
 | 
			
		||||
;;      flags as well (those symbols that start with a plus).
 | 
			
		||||
;;
 | 
			
		||||
;;      Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
 | 
			
		||||
;;      directory (for easy access to its source code).
 | 
			
		||||
 | 
			
		||||
(doom! :input
 | 
			
		||||
       ;;bidi              ; (tfel ot) thgir etirw uoy gnipleh
 | 
			
		||||
       ;;chinese
 | 
			
		||||
       ;;japanese
 | 
			
		||||
       ;;layout            ; auie,ctsrnm is the superior home row
 | 
			
		||||
 | 
			
		||||
       :completion
 | 
			
		||||
       company           ; the ultimate code completion backend
 | 
			
		||||
       ;;(corfu +orderless)  ; complete with cap(f), cape and a flying feather!
 | 
			
		||||
       ;;helm              ; the *other* search engine for love and life
 | 
			
		||||
       ;;ido               ; the other *other* search engine...
 | 
			
		||||
       ;;ivy               ; a search engine for love and life
 | 
			
		||||
       vertico           ; the search engine of the future
 | 
			
		||||
 | 
			
		||||
       :ui
 | 
			
		||||
       ;;deft              ; notational velocity for Emacs
 | 
			
		||||
       doom              ; what makes DOOM look the way it does
 | 
			
		||||
       doom-dashboard    ; a nifty splash screen for Emacs
 | 
			
		||||
       ;;doom-quit         ; DOOM quit-message prompts when you quit Emacs
 | 
			
		||||
       ;;(emoji +unicode)  ; 🙂
 | 
			
		||||
       hl-todo           ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
 | 
			
		||||
       ;;hydra
 | 
			
		||||
       indent-guides     ; highlighted indent columns
 | 
			
		||||
       ligatures         ; ligatures and symbols to make your code pretty again
 | 
			
		||||
       ;;minimap           ; show a map of the code on the side
 | 
			
		||||
       modeline          ; snazzy, Atom-inspired modeline, plus API
 | 
			
		||||
       nav-flash         ; blink cursor line after big motions
 | 
			
		||||
       ;;neotree           ; a project drawer, like NERDTree for vim
 | 
			
		||||
       ophints           ; highlight the region an operation acts on
 | 
			
		||||
       (popup +defaults)   ; tame sudden yet inevitable temporary windows
 | 
			
		||||
       ;;tabs              ; a tab bar for Emacs
 | 
			
		||||
       (treemacs +lsp)     ; a project drawer, like neotree but cooler
 | 
			
		||||
       unicode           ; extended unicode support for various languages
 | 
			
		||||
       (vc-gutter +pretty) ; vcs diff in the fringe
 | 
			
		||||
       vi-tilde-fringe   ; fringe tildes to mark beyond EOB
 | 
			
		||||
       ;;window-select     ; visually switch windows
 | 
			
		||||
       workspaces        ; tab emulation, persistence & separate workspaces
 | 
			
		||||
       zen               ; distraction-free coding or writing
 | 
			
		||||
 | 
			
		||||
       :editor
 | 
			
		||||
       (evil +everywhere); come to the dark side, we have cookies
 | 
			
		||||
       file-templates    ; auto-snippets for empty files
 | 
			
		||||
       fold              ; (nigh) universal code folding
 | 
			
		||||
       (format +onsave)  ; automated prettiness
 | 
			
		||||
       ;;god               ; run Emacs commands without modifier keys
 | 
			
		||||
       ;;lispy             ; vim for lisp, for people who don't like vim
 | 
			
		||||
       ;;multiple-cursors  ; editing in many places at once
 | 
			
		||||
       ;;objed             ; text object editing for the innocent
 | 
			
		||||
       ;;parinfer          ; turn lisp into python, sort of
 | 
			
		||||
       ;;rotate-text       ; cycle region at point between text candidates
 | 
			
		||||
       snippets          ; my elves. They type so I don't have to
 | 
			
		||||
       ;;word-wrap         ; soft wrapping with language-aware indent
 | 
			
		||||
 | 
			
		||||
       :emacs
 | 
			
		||||
       dired             ; making dired pretty [functional]
 | 
			
		||||
       electric          ; smarter, keyword-based electric-indent
 | 
			
		||||
       ;;ibuffer         ; interactive buffer management
 | 
			
		||||
       undo              ; persistent, smarter undo for your inevitable mistakes
 | 
			
		||||
       vc                ; version-control and Emacs, sitting in a tree
 | 
			
		||||
 | 
			
		||||
       :term
 | 
			
		||||
       ;;eshell            ; the elisp shell that works everywhere
 | 
			
		||||
       ;;shell             ; simple shell REPL for Emacs
 | 
			
		||||
       term              ; basic terminal emulator for Emacs
 | 
			
		||||
       ;;vterm             ; the best terminal emulation in Emacs
 | 
			
		||||
 | 
			
		||||
       :checkers
 | 
			
		||||
       syntax              ; tasing you for every semicolon you forget
 | 
			
		||||
       (spell            ; tasing you for misspelling mispelling
 | 
			
		||||
         +aspell
 | 
			
		||||
         +flyspell)
 | 
			
		||||
       grammar           ; tasing grammar mistake every you make
 | 
			
		||||
 | 
			
		||||
       :tools
 | 
			
		||||
       ;;ansible
 | 
			
		||||
       ;;biblio            ; Writes a PhD for you (citation needed)
 | 
			
		||||
       ;;collab            ; buffers with friends
 | 
			
		||||
       ;;debugger          ; FIXME stepping through code, to help you add bugs
 | 
			
		||||
       ;;direnv
 | 
			
		||||
       ;;docker
 | 
			
		||||
       editorconfig      ; let someone else argue about tabs vs spaces
 | 
			
		||||
       ;;ein               ; tame Jupyter notebooks with emacs
 | 
			
		||||
       (eval +overlay)     ; run code, run (also, repls)
 | 
			
		||||
       lookup              ; navigate your code and its documentation
 | 
			
		||||
       ;lsp               ; M-x vscode
 | 
			
		||||
       ;;magit             ; a git porcelain for Emacs
 | 
			
		||||
       ;;make              ; run make tasks from Emacs
 | 
			
		||||
       ;;pass              ; password manager for nerds
 | 
			
		||||
       ;;pdf               ; pdf enhancements
 | 
			
		||||
       ;;prodigy           ; FIXME managing external services & code builders
 | 
			
		||||
       ;;taskrunner        ; taskrunner for all your projects
 | 
			
		||||
       ;;terraform         ; infrastructure as code
 | 
			
		||||
       ;;tmux              ; an API for interacting with tmux
 | 
			
		||||
       tree-sitter       ; syntax and parsing, sitting in a tree...
 | 
			
		||||
       ;;upload            ; map local to remote projects via ssh/ftp
 | 
			
		||||
 | 
			
		||||
       :os
 | 
			
		||||
       (:if (featurep :system 'macos) macos)  ; improve compatibility with macOS
 | 
			
		||||
       ;;tty               ; improve the terminal Emacs experience
 | 
			
		||||
 | 
			
		||||
       :lang
 | 
			
		||||
       ;;agda              ; types of types of types of types...
 | 
			
		||||
       ;;beancount         ; mind the GAAP
 | 
			
		||||
       ;;(cc +lsp)         ; C > C++ == 1
 | 
			
		||||
       ;;clojure           ; java with a lisp
 | 
			
		||||
       ;;common-lisp       ; if you've seen one lisp, you've seen them all
 | 
			
		||||
       ;;coq               ; proofs-as-programs
 | 
			
		||||
       ;;crystal           ; ruby at the speed of c
 | 
			
		||||
       ;;csharp            ; unity, .NET, and mono shenanigans
 | 
			
		||||
       ;;data              ; config/data formats
 | 
			
		||||
       ;;(dart +flutter)   ; paint ui and not much else
 | 
			
		||||
       ;;dhall
 | 
			
		||||
       ;;elixir            ; erlang done right
 | 
			
		||||
       ;;elm               ; care for a cup of TEA?
 | 
			
		||||
       emacs-lisp        ; drown in parentheses
 | 
			
		||||
       ;;erlang            ; an elegant language for a more civilized age
 | 
			
		||||
       ;;ess               ; emacs speaks statistics
 | 
			
		||||
       ;;factor
 | 
			
		||||
       ;;faust             ; dsp, but you get to keep your soul
 | 
			
		||||
       ;;fortran           ; in FORTRAN, GOD is REAL (unless declared INTEGER)
 | 
			
		||||
       ;;fsharp            ; ML stands for Microsoft's Language
 | 
			
		||||
       ;;fstar             ; (dependent) types and (monadic) effects and Z3
 | 
			
		||||
       ;;gdscript          ; the language you waited for
 | 
			
		||||
       ;;(go +lsp)         ; the hipster dialect
 | 
			
		||||
       ;;(graphql +lsp)    ; Give queries a REST
 | 
			
		||||
       ;;(haskell +lsp)    ; a language that's lazier than I am
 | 
			
		||||
       ;;hy                ; readability of scheme w/ speed of python
 | 
			
		||||
       ;;idris             ; a language you can depend on
 | 
			
		||||
       ;;json              ; At least it ain't XML
 | 
			
		||||
       ;;(java +lsp)       ; the poster child for carpal tunnel syndrome
 | 
			
		||||
       ;;javascript        ; all(hope(abandon(ye(who(enter(here))))))
 | 
			
		||||
       ;;julia             ; a better, faster MATLAB
 | 
			
		||||
       ;;kotlin            ; a better, slicker Java(Script)
 | 
			
		||||
       (latex            ; writing papers in Emacs has never been so fun
 | 
			
		||||
         +lsp
 | 
			
		||||
         +cdlatex)
 | 
			
		||||
       ;;lean              ; for folks with too much to prove
 | 
			
		||||
       ledger            ; be audit you can be
 | 
			
		||||
       ;;lua               ; one-based indices? one-based indices
 | 
			
		||||
       markdown          ; writing docs for people to ignore
 | 
			
		||||
       ;;nim               ; python + lisp at the speed of c
 | 
			
		||||
       ;;nix               ; I hereby declare "nix geht mehr!"
 | 
			
		||||
       ;;ocaml             ; an objective camel
 | 
			
		||||
       (org              ; organize your plain life in plain text
 | 
			
		||||
         +gnuplot
 | 
			
		||||
         +pandoc
 | 
			
		||||
         +pretty
 | 
			
		||||
         +roam2)
 | 
			
		||||
       ;;php               ; perl's insecure younger brother
 | 
			
		||||
       ;;plantuml          ; diagrams for confusing people more
 | 
			
		||||
       ;;purescript        ; javascript, but functional
 | 
			
		||||
       ;;python            ; beautiful is better than ugly
 | 
			
		||||
       ;;qt                ; the 'cutest' gui framework ever
 | 
			
		||||
       ;;racket            ; a DSL for DSLs
 | 
			
		||||
       ;;raku              ; the artist formerly known as perl6
 | 
			
		||||
       ;;rest              ; Emacs as a REST client
 | 
			
		||||
       ;;rst               ; ReST in peace
 | 
			
		||||
       ;;(ruby +rails)     ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
 | 
			
		||||
       ;;(rust +lsp)       ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
 | 
			
		||||
       ;;scala             ; java, but good
 | 
			
		||||
       ;;(scheme +guile)   ; a fully conniving family of lisps
 | 
			
		||||
       sh                ; she sells {ba,z,fi}sh shells on the C xor
 | 
			
		||||
       ;;sml
 | 
			
		||||
       ;;solidity          ; do you need a blockchain? No.
 | 
			
		||||
       ;;swift             ; who asked for emoji variables?
 | 
			
		||||
       ;;terra             ; Earth and Moon in alignment for performance.
 | 
			
		||||
       ;;web               ; the tubes
 | 
			
		||||
       ;;yaml              ; JSON, but readable
 | 
			
		||||
       ;;zig               ; C, but simpler
 | 
			
		||||
 | 
			
		||||
       :email
 | 
			
		||||
       ;;(mu4e +org +gmail)
 | 
			
		||||
       ;;notmuch
 | 
			
		||||
       ;;(wanderlust +gmail)
 | 
			
		||||
 | 
			
		||||
       :app
 | 
			
		||||
       ;;calendar
 | 
			
		||||
       ;;emms
 | 
			
		||||
       ;;everywhere        ; *leave* Emacs!? You must be joking
 | 
			
		||||
       ;;irc               ; how neckbeards socialize
 | 
			
		||||
       (rss +org)        ; emacs as an RSS reader
 | 
			
		||||
       ;;twitter           ; twitter client https://twitter.com/vnought
 | 
			
		||||
 | 
			
		||||
       :config
 | 
			
		||||
       ;;literate
 | 
			
		||||
       (default +bindings +smartparens))
 | 
			
		||||
							
								
								
									
										57
									
								
								modules/home-manager/programs/emacs/doom/packages.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								modules/home-manager/programs/emacs/doom/packages.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
;; -*- no-byte-compile: t; -*-
 | 
			
		||||
;;; $DOOMDIR/packages.el
 | 
			
		||||
 | 
			
		||||
;; To install a package with Doom you must declare them here and run 'doom sync'
 | 
			
		||||
;; on the command line, then restart Emacs for the changes to take effect -- or
 | 
			
		||||
;; use 'M-x doom/reload'.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
 | 
			
		||||
;; (package! some-package)
 | 
			
		||||
 | 
			
		||||
;; To install a package directly from a remote git repo, you must specify a
 | 
			
		||||
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
 | 
			
		||||
;; https://github.com/radian-software/straight.el#the-recipe-format
 | 
			
		||||
;; (package! another-package
 | 
			
		||||
;;   :recipe (:host github :repo "username/repo"))
 | 
			
		||||
 | 
			
		||||
;; If the package you are trying to install does not contain a PACKAGENAME.el
 | 
			
		||||
;; file, or is located in a subdirectory of the repo, you'll need to specify
 | 
			
		||||
;; `:files' in the `:recipe':
 | 
			
		||||
;; (package! this-package
 | 
			
		||||
;;   :recipe (:host github :repo "username/repo"
 | 
			
		||||
;;            :files ("some-file.el" "src/lisp/*.el")))
 | 
			
		||||
 | 
			
		||||
;; If you'd like to disable a package included with Doom, you can do so here
 | 
			
		||||
;; with the `:disable' property:
 | 
			
		||||
;; (package! builtin-package :disable t)
 | 
			
		||||
 | 
			
		||||
;; You can override the recipe of a built in package without having to specify
 | 
			
		||||
;; all the properties for `:recipe'. These will inherit the rest of its recipe
 | 
			
		||||
;; from Doom or MELPA/ELPA/Emacsmirror:
 | 
			
		||||
;; (package! builtin-package :recipe (:nonrecursive t))
 | 
			
		||||
;; (package! builtin-package-2 :recipe (:repo "myfork/package"))
 | 
			
		||||
 | 
			
		||||
;; Specify a `:branch' to install a package from a particular branch or tag.
 | 
			
		||||
;; This is required for some packages whose default branch isn't 'master' (which
 | 
			
		||||
;; our package manager can't deal with; see radian-software/straight.el#279)
 | 
			
		||||
;; (package! builtin-package :recipe (:branch "develop"))
 | 
			
		||||
 | 
			
		||||
;; Use `:pin' to specify a particular commit to install.
 | 
			
		||||
;; (package! builtin-package :pin "1a2b3c4d5e")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;; Doom's packages are pinned to a specific commit and updated from release to
 | 
			
		||||
;; release. The `unpin!' macro allows you to unpin single packages...
 | 
			
		||||
;; (unpin! pinned-package)
 | 
			
		||||
;; ...or multiple packages
 | 
			
		||||
;; (unpin! pinned-package another-pinned-package)
 | 
			
		||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
 | 
			
		||||
;; (unpin! t)
 | 
			
		||||
 | 
			
		||||
;; Add org-roam-ui so I can see the node graph of my notes.
 | 
			
		||||
(unpin! org-roam)
 | 
			
		||||
(package! org-roam-ui)
 | 
			
		||||
 | 
			
		||||
;; Add catppuccin theme.
 | 
			
		||||
(package! catppuccin-theme)
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# -*- mode: snippet -*-
 | 
			
		||||
# name: daily
 | 
			
		||||
# key: daily
 | 
			
		||||
# --
 | 
			
		||||
#+filetags: :daily:$1
 | 
			
		||||
 | 
			
		||||
* Tasks
 | 
			
		||||
$2
 | 
			
		||||
* Input
 | 
			
		||||
* Output
 | 
			
		||||
* Morning Journal
 | 
			
		||||
** What are you grateful for?
 | 
			
		||||
** What do you want today's highlight to be?
 | 
			
		||||
** What's on your mind?
 | 
			
		||||
* Evening Reflection
 | 
			
		||||
** How are you feeling today?
 | 
			
		||||
** What could you have done better?
 | 
			
		||||
** Amazing things that happened
 | 
			
		||||
** What did you learn today?
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
#+title: %<%Y-%m-%d>
 | 
			
		||||
#+filetags: :daily:
 | 
			
		||||
 | 
			
		||||
* Morning Journal
 | 
			
		||||
** What are you grateful for?
 | 
			
		||||
 | 
			
		||||
** What do you want the today's highlight to be?
 | 
			
		||||
 | 
			
		||||
** Daily affirmations
 | 
			
		||||
*** What's on your mind?
 | 
			
		||||
 | 
			
		||||
* Tasks
 | 
			
		||||
 | 
			
		||||
* Input
 | 
			
		||||
 | 
			
		||||
* Output
 | 
			
		||||
 | 
			
		||||
* Evening Reflection
 | 
			
		||||
** How are you feeling today?
 | 
			
		||||
 | 
			
		||||
** What could you have done better?
 | 
			
		||||
 | 
			
		||||
** Amazing things that happend
 | 
			
		||||
 | 
			
		||||
** What did you learn today?
 | 
			
		||||
							
								
								
									
										30
									
								
								modules/home-manager/programs/fish/Catppuccin-Frappe.theme
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/home-manager/programs/fish/Catppuccin-Frappe.theme
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
# name: 'Catppuccin frappe'
 | 
			
		||||
# url: 'https://github.com/catppuccin/fish'
 | 
			
		||||
# preferred_background: 303446
 | 
			
		||||
 | 
			
		||||
fish_color_normal c6d0f5
 | 
			
		||||
fish_color_command 8caaee
 | 
			
		||||
fish_color_param eebebe
 | 
			
		||||
fish_color_keyword e78284
 | 
			
		||||
fish_color_quote a6d189
 | 
			
		||||
fish_color_redirection f4b8e4
 | 
			
		||||
fish_color_end ef9f76
 | 
			
		||||
fish_color_comment 838ba7
 | 
			
		||||
fish_color_error e78284
 | 
			
		||||
fish_color_gray 737994
 | 
			
		||||
fish_color_selection --background=414559
 | 
			
		||||
fish_color_search_match --background=414559
 | 
			
		||||
fish_color_option a6d189
 | 
			
		||||
fish_color_operator f4b8e4
 | 
			
		||||
fish_color_escape ea999c
 | 
			
		||||
fish_color_autosuggestion 737994
 | 
			
		||||
fish_color_cancel e78284
 | 
			
		||||
fish_color_cwd e5c890
 | 
			
		||||
fish_color_user 81c8be
 | 
			
		||||
fish_color_host 8caaee
 | 
			
		||||
fish_color_host_remote a6d189
 | 
			
		||||
fish_color_status e78284
 | 
			
		||||
fish_pager_color_progress 737994
 | 
			
		||||
fish_pager_color_prefix f4b8e4
 | 
			
		||||
fish_pager_color_completion c6d0f5
 | 
			
		||||
fish_pager_color_description 737994
 | 
			
		||||
							
								
								
									
										65
									
								
								modules/home-manager/programs/fish/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								modules/home-manager/programs/fish/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.fish = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
 | 
			
		||||
    interactiveShellInit = ''
 | 
			
		||||
      ## Set vim mode
 | 
			
		||||
      set -g fish_key_bindings fish_vi_key_bindings
 | 
			
		||||
 | 
			
		||||
      # Configure FZF
 | 
			
		||||
      set -x FZF_DEFAULT_OPTS '--color=fg:#f8f8f2,hl:#bd93f9 --color=fg+:#f8f8f2,bg+:#44475a,hl+:#bd93f9 --color=info:#ffb86c,prompt:#50fa7b,pointer:#ff79c6 --color=marker:#ff79c6,spinner:#ffb86c,header:#6272a4 --layout=reverse --height 50%'
 | 
			
		||||
 | 
			
		||||
      # Remove welcome message
 | 
			
		||||
      set -x fish_greeting ""
 | 
			
		||||
 | 
			
		||||
      ## Add directories to $PATH
 | 
			
		||||
      fish_add_path /home/wizardlink/.local/share/scripts \
 | 
			
		||||
          /home/wizardlink/.config/emacs/bin \
 | 
			
		||||
          /home/wizardlink/.spicetify \
 | 
			
		||||
          /home/wizardlink/.nimble/bin \
 | 
			
		||||
          /home/wizardlink/.cargo/bin \
 | 
			
		||||
          /home/wizardlink/.local/bin \
 | 
			
		||||
          /lib/flatpak/exports/bin \
 | 
			
		||||
          /home/wizardlink/.local/share/scripts/burrito \
 | 
			
		||||
          ${pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter}/bin
 | 
			
		||||
 | 
			
		||||
      zoxide init --cmd cd fish | source
 | 
			
		||||
    '';
 | 
			
		||||
 | 
			
		||||
    shellAbbrs = {
 | 
			
		||||
      z = "zoxide";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    shellAliases = {
 | 
			
		||||
      del = "trash_file";
 | 
			
		||||
      dev = "nix develop -c fish";
 | 
			
		||||
      doom = "~/.emacs.d/bin/doom";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    functions = {
 | 
			
		||||
      fish_prompt.body = ''
 | 
			
		||||
        set_color CC241D
 | 
			
		||||
        echo '&' (set_color normal)
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      fzf_edit.body = ''
 | 
			
		||||
        fzf --multi --bind 'enter:become(nvim {+})'
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      trash_file.body = ''
 | 
			
		||||
        mv $argv ~/.local/share/Trash
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      ya.body = ''
 | 
			
		||||
        set tmp (mktemp -t "yazi-cwd.XXXXX")
 | 
			
		||||
        yazi $argv --cwd-file="$tmp"
 | 
			
		||||
        if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
 | 
			
		||||
          cd -- "$cwd"
 | 
			
		||||
        end
 | 
			
		||||
        rm -f -- "$tmp"
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										76
									
								
								modules/home-manager/programs/gamemode.ini
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								modules/home-manager/programs/gamemode.ini
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
[general]
 | 
			
		||||
; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance
 | 
			
		||||
reaper_freq=5
 | 
			
		||||
 | 
			
		||||
; The desired governor is used when entering GameMode instead of "performance"
 | 
			
		||||
desiredgov=performance
 | 
			
		||||
; The default governor is used when leaving GameMode instead of restoring the original value
 | 
			
		||||
;defaultgov=powersave
 | 
			
		||||
 | 
			
		||||
; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently
 | 
			
		||||
; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable
 | 
			
		||||
; with 4 or more CPU cores. "on" will always enable. Defaults to "off".
 | 
			
		||||
softrealtime=off
 | 
			
		||||
 | 
			
		||||
; GameMode can renice game processes. You can put any value between 0 and 20 here, the value
 | 
			
		||||
; will be negated and applied as a nice value (0 means no change). Defaults to 0.
 | 
			
		||||
renice=0
 | 
			
		||||
 | 
			
		||||
; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value
 | 
			
		||||
; between 0 and 7 here (with 0 being highest priority), or one of the special values
 | 
			
		||||
; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority),
 | 
			
		||||
; currently, only the best-effort class is supported thus you cannot set it here
 | 
			
		||||
ioprio=reset
 | 
			
		||||
 | 
			
		||||
; Sets whether gamemode will inhibit the screensaver when active
 | 
			
		||||
; Defaults to 1
 | 
			
		||||
inhibit_screensaver=0
 | 
			
		||||
 | 
			
		||||
[filter]
 | 
			
		||||
; If "whitelist" entry has a value(s)
 | 
			
		||||
; gamemode will reject anything not in the whitelist
 | 
			
		||||
;whitelist=RiseOfTheTombRaider
 | 
			
		||||
 | 
			
		||||
; Gamemode will always reject anything in the blacklist
 | 
			
		||||
;blacklist=HalfLife3
 | 
			
		||||
;    glxgears
 | 
			
		||||
 | 
			
		||||
[gpu]
 | 
			
		||||
; Here Be Dragons!
 | 
			
		||||
; Warning: Use these settings at your own risk
 | 
			
		||||
; Any damage to hardware incurred due to this feature is your responsibility and yours alone
 | 
			
		||||
; It is also highly recommended you try these settings out first manually to find the sweet spots
 | 
			
		||||
 | 
			
		||||
; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks
 | 
			
		||||
apply_gpu_optimisations=accept-responsibility
 | 
			
		||||
 | 
			
		||||
; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/
 | 
			
		||||
gpu_device=1
 | 
			
		||||
 | 
			
		||||
; AMD specific settings
 | 
			
		||||
; Requires a relatively up to date AMDGPU kernel module
 | 
			
		||||
; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring
 | 
			
		||||
; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures
 | 
			
		||||
; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now
 | 
			
		||||
amd_performance_level=auto
 | 
			
		||||
 | 
			
		||||
[supervisor]
 | 
			
		||||
; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for
 | 
			
		||||
; The whilelist and blacklist control which supervisor programs are allowed to make the above requests
 | 
			
		||||
;supervisor_whitelist=
 | 
			
		||||
;supervisor_blacklist=
 | 
			
		||||
 | 
			
		||||
; In case you want to allow a supervisor to take full control of gamemode, this option can be set
 | 
			
		||||
; This will only allow gamemode clients to be registered by using the above functions by a supervisor client
 | 
			
		||||
;require_supervisor=0
 | 
			
		||||
 | 
			
		||||
[custom]
 | 
			
		||||
; Custom scripts (executed using the shell) when gamemode starts and ends
 | 
			
		||||
;start=notify-send "GameMode started"
 | 
			
		||||
;    /home/me/bin/stop_ethmining.sh
 | 
			
		||||
 | 
			
		||||
;end=notify-send "GameMode ended"
 | 
			
		||||
;    /home/me/bin/start_ethmining.sh
 | 
			
		||||
 | 
			
		||||
; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time.
 | 
			
		||||
;script_timeout=10
 | 
			
		||||
							
								
								
									
										95
									
								
								modules/home-manager/programs/git.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								modules/home-manager/programs/git.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  # Enable GIT.
 | 
			
		||||
  programs.git = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
 | 
			
		||||
    aliases = {
 | 
			
		||||
      # List aliases
 | 
			
		||||
      aliases = "config --get-regexp alias";
 | 
			
		||||
 | 
			
		||||
      # List all the contributors with commit amount
 | 
			
		||||
      contributors = "shortlog --summary --numbered";
 | 
			
		||||
 | 
			
		||||
      # Output verbose info about branches and tags
 | 
			
		||||
      branches = "branch -avv";
 | 
			
		||||
 | 
			
		||||
      # List all tags
 | 
			
		||||
      tags = "tag -l";
 | 
			
		||||
 | 
			
		||||
      # Pretty logs
 | 
			
		||||
      plog = "log --graph --decorate --all";
 | 
			
		||||
 | 
			
		||||
      # Pretty grep
 | 
			
		||||
      gcommit = "log --graph --decorate --grep";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    extraConfig = {
 | 
			
		||||
      core = {
 | 
			
		||||
        # Set the editor to be used by GIT
 | 
			
		||||
        editor = "nvim";
 | 
			
		||||
 | 
			
		||||
        # Custom .gitignore
 | 
			
		||||
        excludesfile = "~/.gitignore";
 | 
			
		||||
 | 
			
		||||
        # Treat trailing whitespaces and spaces before tabs as an error
 | 
			
		||||
        whitespace = "space-before-tab,-indent-with-non-tab,trailing-space";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      color = {
 | 
			
		||||
        # Use colors in GIT commmands.
 | 
			
		||||
        ui = "auto";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      commit = {
 | 
			
		||||
        # https://help.github.com/articles/signing-commits-using-gpg/
 | 
			
		||||
        gpgsign = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      tag = {
 | 
			
		||||
        gpgsign = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      difftool = {
 | 
			
		||||
        prompt = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      mergetool = {
 | 
			
		||||
        # https://www.git-scm.com/docs/git-mergetool#Documentation/git-mergetool.txt---no-prompt
 | 
			
		||||
        prompt = false;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      merge = {
 | 
			
		||||
        # https://git-scm.com/docs/git-merge#_how_conflicts_are_presented
 | 
			
		||||
        conflictstyle = "diff3";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      push = {
 | 
			
		||||
        # https://stackoverflow.com/questions/21839651/git-what-is-the-difference-between-push-default-matching-and-simple
 | 
			
		||||
        default = "simple";
 | 
			
		||||
 | 
			
		||||
        # git-push pushes relevant annotated tags when pushing branches out
 | 
			
		||||
        followTags = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      user = {
 | 
			
		||||
        name = "Alexandre Cavalheiro S. Tiago da Silva";
 | 
			
		||||
        email = "contact@thewizard.link";
 | 
			
		||||
        signingkey = "A1D3A2B4E14BD7C0445BB749A5767B54367CFBDF";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      pull = {
 | 
			
		||||
        ff = "only";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      init = {
 | 
			
		||||
        defaultBranch = "main";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      credential = {
 | 
			
		||||
        helper = "/usr/libexec/git-core/git-credential-libsecret";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										361
									
								
								modules/home-manager/programs/hyprland/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										361
									
								
								modules/home-manager/programs/hyprland/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,361 @@
 | 
			
		|||
{
 | 
			
		||||
  xdg.configFile."hypr/frappe.conf".source = builtins.fetchurl {
 | 
			
		||||
    url = "https://raw.githubusercontent.com/catppuccin/hyprland/main/themes/frappe.conf";
 | 
			
		||||
    sha256 = "1clw669i1n3dhawdw4clmjv75fy3smycb5iqk3sanzpr3y0i4vwx";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable hypridle and hyprlock
 | 
			
		||||
  services.hypridle = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      general = {
 | 
			
		||||
        after_sleep_cmd = "hyprctl dispatch dpms on";
 | 
			
		||||
        ignore_dbus_inhibit = false;
 | 
			
		||||
        lock_cmd = "hyprlock";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      listener = [
 | 
			
		||||
        {
 | 
			
		||||
          timeout = 120;
 | 
			
		||||
          on-timeout = "hyprlock";
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          timeout = 180;
 | 
			
		||||
          on-timeout = "hyprctl dispatch dpms off";
 | 
			
		||||
          on-resume = "hyprctl dispatch dpms on";
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.hyprlock = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    extraConfig = # hyprlang
 | 
			
		||||
      ''
 | 
			
		||||
        source = $HOME/.config/hypr/frappe.conf
 | 
			
		||||
 | 
			
		||||
        $accent = $mauve
 | 
			
		||||
        $accentAlpha = $mauveAlpha
 | 
			
		||||
        $font = JetBrainsMono Nerd Font
 | 
			
		||||
 | 
			
		||||
        # GENERAL
 | 
			
		||||
        general {
 | 
			
		||||
          disable_loading_bar = true
 | 
			
		||||
          hide_cursor = true
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # BACKGROUND
 | 
			
		||||
        background {
 | 
			
		||||
          monitor =
 | 
			
		||||
          path = $HOME/internal/personal/wallpapers/wallhaven-2em8y6.jpg
 | 
			
		||||
          blur_passes = 0
 | 
			
		||||
          color = $base
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # LAYOUT
 | 
			
		||||
        label {
 | 
			
		||||
          monitor =
 | 
			
		||||
          text = Layout: $LAYOUT
 | 
			
		||||
          color = $text
 | 
			
		||||
          font_size = 25
 | 
			
		||||
          font_family = $font
 | 
			
		||||
          position = 30, -30
 | 
			
		||||
          halign = left
 | 
			
		||||
          valign = top
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # TIME
 | 
			
		||||
        label {
 | 
			
		||||
          monitor =
 | 
			
		||||
          text = $TIME
 | 
			
		||||
          color = $text
 | 
			
		||||
          font_size = 90
 | 
			
		||||
          font_family = $font
 | 
			
		||||
          position = -30, 0
 | 
			
		||||
          halign = right
 | 
			
		||||
          valign = top
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # DATE
 | 
			
		||||
        label {
 | 
			
		||||
          monitor =
 | 
			
		||||
          text = cmd[update:43200000] date +"%A, %d %B %Y"
 | 
			
		||||
          color = $text
 | 
			
		||||
          font_size = 25
 | 
			
		||||
          font_family = $font
 | 
			
		||||
          position = -30, -150
 | 
			
		||||
          halign = right
 | 
			
		||||
          valign = top
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # USER AVATAR
 | 
			
		||||
        image {
 | 
			
		||||
          monitor =
 | 
			
		||||
          path = $HOME/.face
 | 
			
		||||
          size = 100
 | 
			
		||||
          border_color = $accent
 | 
			
		||||
          position = 0, 75
 | 
			
		||||
          halign = center
 | 
			
		||||
          valign = center
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # INPUT FIELD
 | 
			
		||||
        input-field {
 | 
			
		||||
          monitor =
 | 
			
		||||
          size = 300, 60
 | 
			
		||||
          outline_thickness = 4
 | 
			
		||||
          dots_size = 0.2
 | 
			
		||||
          dots_spacing = 0.2
 | 
			
		||||
          dots_center = true
 | 
			
		||||
          outer_color = $accent
 | 
			
		||||
          inner_color = $surface0
 | 
			
		||||
          font_color = $text
 | 
			
		||||
          fade_on_empty = false
 | 
			
		||||
          placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
 | 
			
		||||
          hide_input = false
 | 
			
		||||
          check_color = $accent
 | 
			
		||||
          fail_color = $red
 | 
			
		||||
          fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
 | 
			
		||||
          capslock_color = $yellow
 | 
			
		||||
          position = 0, -47
 | 
			
		||||
          halign = center
 | 
			
		||||
          valign = center
 | 
			
		||||
        }
 | 
			
		||||
      '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Configure hyprland - we enable it in NixOS.
 | 
			
		||||
  xdg.configFile."hypr/hyprland.conf".text = # hyprlang
 | 
			
		||||
    ''
 | 
			
		||||
      source = $HOME/.config/hypr/frappe.conf
 | 
			
		||||
 | 
			
		||||
      #
 | 
			
		||||
      # Please note not all available settings / options are set here.
 | 
			
		||||
      # For a full list, see the wiki
 | 
			
		||||
      #
 | 
			
		||||
 | 
			
		||||
      autogenerated = 0 # remove this line to remove the warning
 | 
			
		||||
 | 
			
		||||
      # See https://wiki.hyprland.org/Configuring/Monitors/
 | 
			
		||||
      monitor = DP-3, 1920x1080@74.973, 2560x0, 1
 | 
			
		||||
      monitor = DP-2, 2560x1440@165.00301, 0x0, 1
 | 
			
		||||
 | 
			
		||||
      # See https://wiki.hyprland.org/Configuring/Keywords/ for more
 | 
			
		||||
 | 
			
		||||
      # Inject home-manager session variables
 | 
			
		||||
      exec-once = /etc/profiles/per-user/wizardlink/etc/profile.d/hm-session-vars.sh
 | 
			
		||||
 | 
			
		||||
      # Start the core services of my desktop
 | 
			
		||||
      exec-once = ~/.local/share/scripts/hyprland/start_services.sh
 | 
			
		||||
 | 
			
		||||
      # Open the apps I always use
 | 
			
		||||
      exec-once = ~/.local/share/scripts/hyprland/start_apps.sh
 | 
			
		||||
 | 
			
		||||
      # Set cursor size.
 | 
			
		||||
      env = HYPRCURSOR_SIZE, 36
 | 
			
		||||
      env = XCURSOR_SIZE, 36
 | 
			
		||||
 | 
			
		||||
      # Source a file (multi-file configs)
 | 
			
		||||
      # source = ~/.config/hypr/myColors.conf
 | 
			
		||||
 | 
			
		||||
      # For all categories, see https://wiki.hyprland.org/Configuring/Variables/
 | 
			
		||||
      input {
 | 
			
		||||
        kb_layout =
 | 
			
		||||
        kb_variant =
 | 
			
		||||
        kb_model =
 | 
			
		||||
        kb_options =
 | 
			
		||||
        kb_rules =
 | 
			
		||||
 | 
			
		||||
        follow_mouse = 1
 | 
			
		||||
        float_switch_override_focus = 1
 | 
			
		||||
 | 
			
		||||
        accel_profile = flat
 | 
			
		||||
        force_no_accel = true
 | 
			
		||||
 | 
			
		||||
        sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
 | 
			
		||||
 | 
			
		||||
        tablet {
 | 
			
		||||
          output = DP-2
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      general {
 | 
			
		||||
        # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
			
		||||
 | 
			
		||||
        gaps_in = 6
 | 
			
		||||
        gaps_out = 18
 | 
			
		||||
        border_size = 2
 | 
			
		||||
        col.active_border = $base $surface0 $green 45deg
 | 
			
		||||
        col.inactive_border = $base $surface0 $blue 45deg
 | 
			
		||||
 | 
			
		||||
        layout = dwindle
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      decoration {
 | 
			
		||||
        # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
			
		||||
 | 
			
		||||
        rounding = 8
 | 
			
		||||
        # FIXME: Check these deprecations.
 | 
			
		||||
        #blur = yes
 | 
			
		||||
        #blur_size = 3
 | 
			
		||||
        #blur_passes = 1
 | 
			
		||||
        #blur_new_optimizations = on
 | 
			
		||||
 | 
			
		||||
        drop_shadow = yes
 | 
			
		||||
        shadow_range = 4
 | 
			
		||||
        shadow_render_power = 3
 | 
			
		||||
        col.shadow = $crust
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      animations {
 | 
			
		||||
        enabled = yes
 | 
			
		||||
 | 
			
		||||
        # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
 | 
			
		||||
 | 
			
		||||
        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
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      dwindle {
 | 
			
		||||
        # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
 | 
			
		||||
        pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
 | 
			
		||||
        preserve_split = yes # you probably want this
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      master {
 | 
			
		||||
        # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
 | 
			
		||||
        new_status = slave
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      gestures {
 | 
			
		||||
        # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
			
		||||
        workspace_swipe = off
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      # Example windowrule v1
 | 
			
		||||
      # windowrule = float, ^(kitty)$
 | 
			
		||||
      # Example windowrule v2
 | 
			
		||||
      # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
 | 
			
		||||
      # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
 | 
			
		||||
 | 
			
		||||
      # Bind workspaces to specific monitors
 | 
			
		||||
      workspace = 1, monitor:DP-2
 | 
			
		||||
      workspace = 2, monitor:DP-3
 | 
			
		||||
      workspace = 3, monitor:DP-2
 | 
			
		||||
      workspace = 4, monitor:DP-3
 | 
			
		||||
      workspace = 5, monitor:DP-2
 | 
			
		||||
      workspace = 6, monitor:DP-3
 | 
			
		||||
      workspace = 7, monitor:DP-2
 | 
			
		||||
      workspace = 8, monitor:DP-3
 | 
			
		||||
      workspace = 9, monitor:DP-2
 | 
			
		||||
      workspace = 0, monitor:DP-3
 | 
			
		||||
 | 
			
		||||
      # See https://wiki.hyprland.org/Configuring/Keywords/ for more
 | 
			
		||||
      $mainMod = SUPER
 | 
			
		||||
 | 
			
		||||
      # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
 | 
			
		||||
      bind = $mainMod CTRL, F, fullscreenstate, -1 2
 | 
			
		||||
      bind = $mainMod CTRL, L, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
 | 
			
		||||
      bind = $mainMod CTRL, P, exec, ~/.local/share/scripts/hyprland/screenshot_area.sh
 | 
			
		||||
      bind = $mainMod CTRL, V, pin
 | 
			
		||||
      bind = $mainMod SHIFT, F, fullscreen, 1
 | 
			
		||||
      bind = $mainMod SHIFT, P, exec, ~/.local/share/scripts/hyprland/screenshot.sh
 | 
			
		||||
      bind = $mainMod, C, killactive
 | 
			
		||||
      bind = $mainMod, E, exec, thunar
 | 
			
		||||
      bind = $mainMod, F, fullscreen
 | 
			
		||||
      bind = $mainMod, M, exit
 | 
			
		||||
      bind = $mainMod, O, togglesplit # dwindle
 | 
			
		||||
      bind = $mainMod, P, pseudo # dwindle
 | 
			
		||||
      bind = $mainMod, Q, exec, alacritty
 | 
			
		||||
      bind = $mainMod, R, exec, rofi -show drun
 | 
			
		||||
      bind = $mainMod, V, togglefloating
 | 
			
		||||
 | 
			
		||||
      # Move focus with mainMod + arrow keys
 | 
			
		||||
      bind = $mainMod, H, movefocus, l
 | 
			
		||||
      bind = $mainMod, L, movefocus, r
 | 
			
		||||
      bind = $mainMod, K, movefocus, u
 | 
			
		||||
      bind = $mainMod, J, movefocus, d
 | 
			
		||||
 | 
			
		||||
      # Switch workspaces with mainMod + [0-9]
 | 
			
		||||
      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
 | 
			
		||||
 | 
			
		||||
      # Move active window to a workspace with mainMod + SHIFT + [0-9]
 | 
			
		||||
      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
 | 
			
		||||
 | 
			
		||||
      # Scroll through existing workspaces with mainMod + scroll
 | 
			
		||||
      bind = $mainMod, mouse_down, workspace, e+1
 | 
			
		||||
      bind = $mainMod, mouse_up, workspace, e-1
 | 
			
		||||
 | 
			
		||||
      # Move/resize windows with mainMod + LMB/RMB and dragging
 | 
			
		||||
      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 ALT, H, resizeactive, -5% 0
 | 
			
		||||
      bind = $mainMod ALT, L, resizeactive, 5% 0
 | 
			
		||||
      bind = $mainMod ALT, K, resizeactive, 0 -5%
 | 
			
		||||
      bind = $mainMod ALT, J, resizeactive, 0 5%
 | 
			
		||||
      bindm = $mainMod, mouse:272, movewindow
 | 
			
		||||
      bindm = $mainMod, mouse:273, resizewindow
 | 
			
		||||
 | 
			
		||||
      # Volume changes
 | 
			
		||||
      binde = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%+
 | 
			
		||||
      binde = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%-
 | 
			
		||||
      bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
 | 
			
		||||
 | 
			
		||||
      # Passthrough binds
 | 
			
		||||
      bind = SHIFT CTRL, F12, pass, ^(com.obsproject.Studio)$
 | 
			
		||||
 | 
			
		||||
      # Window rules for xwaylandvideobridge
 | 
			
		||||
      windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
 | 
			
		||||
      windowrulev2 = noanim,class:^(xwaylandvideobridge)$
 | 
			
		||||
      windowrulev2 = nofocus,class:^(xwaylandvideobridge)$
 | 
			
		||||
      windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
 | 
			
		||||
 | 
			
		||||
      # Rules for windowkill
 | 
			
		||||
      windowrule = noborder, ^(steam_app_2726450)$
 | 
			
		||||
      windowrule = pin, ^(steam_app_2726450)$
 | 
			
		||||
      windowrule = opacity 0.9, ^(steam_app_2726450)$
 | 
			
		||||
 | 
			
		||||
      # Rules for Awakened PoE
 | 
			
		||||
      windowrulev2 = tag +poe, class:^(steam_app_238960)$
 | 
			
		||||
      windowrulev2 = allowsinput, tag:poe
 | 
			
		||||
 | 
			
		||||
      windowrulev2 = tag +apt, class:^(awakened-poe-trade)$
 | 
			
		||||
      windowrulev2 = float, tag:apt
 | 
			
		||||
      windowrulev2 = noblur, tag:apt
 | 
			
		||||
      windowrulev2 = noborder, tag:apt
 | 
			
		||||
      windowrulev2 = noshadow, tag:apt
 | 
			
		||||
 | 
			
		||||
      # Rules for anki
 | 
			
		||||
      windowrulev2 = float, class:^(anki)$
 | 
			
		||||
 | 
			
		||||
      windowrulev2 = tag +gw2, class:^(steam_app_1284210)$
 | 
			
		||||
      windowrulev2 = noblur, tag:gw2
 | 
			
		||||
      windowrulev2 = noborder, tag:gw2
 | 
			
		||||
    '';
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								modules/home-manager/programs/mako/config
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/home-manager/programs/mako/config
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
anchor=bottom-right
 | 
			
		||||
background-color=#282a36
 | 
			
		||||
border-color=#282a36
 | 
			
		||||
border-radius=20
 | 
			
		||||
border-size=2
 | 
			
		||||
default-timeout=10000
 | 
			
		||||
format=<span font="FantasqueSansMono NF weight=325 Italic" size="12288">%s</span>\n<span font="FantasqueSansMono NF weight=325" size="12288">%b</span>
 | 
			
		||||
group-by=summary
 | 
			
		||||
height=125
 | 
			
		||||
icon-location=right
 | 
			
		||||
layer=top
 | 
			
		||||
margin=0,20,15
 | 
			
		||||
markup=1
 | 
			
		||||
max-icon-size=48
 | 
			
		||||
padding=10,5,10
 | 
			
		||||
text-color=#44475a
 | 
			
		||||
width=300
 | 
			
		||||
 | 
			
		||||
[grouped]
 | 
			
		||||
format=<span font="FantasqueSansMono NF weight=325 Italic" size="12288">%s</span>\n<span font="FantasqueSansMono NF weight=325" size="12288">%b</span>
 | 
			
		||||
 | 
			
		||||
[mode=do-not-disturb]
 | 
			
		||||
invisible=1
 | 
			
		||||
 | 
			
		||||
[urgency=low]
 | 
			
		||||
border-color=#282a36
 | 
			
		||||
 | 
			
		||||
[urgency=normal]
 | 
			
		||||
border-color=#f1fa8c
 | 
			
		||||
 | 
			
		||||
[urgency=high]
 | 
			
		||||
border-color=#ff5555
 | 
			
		||||
							
								
								
									
										101
									
								
								modules/home-manager/programs/mangohud.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								modules/home-manager/programs/mangohud.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.mangohud = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
 | 
			
		||||
    settings = {
 | 
			
		||||
      # Limitations
 | 
			
		||||
      fps_limit = 165;
 | 
			
		||||
      vsync = 1;
 | 
			
		||||
      gl_vsync = 0;
 | 
			
		||||
 | 
			
		||||
      # GPU Statistics
 | 
			
		||||
      gpu_core_clock = true;
 | 
			
		||||
      gpu_fan = true;
 | 
			
		||||
      gpu_junction_temp = true;
 | 
			
		||||
      gpu_load_change = true;
 | 
			
		||||
      gpu_load_color = [
 | 
			
		||||
        "39F900"
 | 
			
		||||
        "FDFD09"
 | 
			
		||||
        "B22222"
 | 
			
		||||
      ];
 | 
			
		||||
      gpu_load_value = [
 | 
			
		||||
        60
 | 
			
		||||
        90
 | 
			
		||||
      ];
 | 
			
		||||
      gpu_mem_clock = true;
 | 
			
		||||
      gpu_mem_temp = true;
 | 
			
		||||
      gpu_power = true;
 | 
			
		||||
      gpu_stats = true;
 | 
			
		||||
      gpu_temp = true;
 | 
			
		||||
      gpu_voltage = true;
 | 
			
		||||
 | 
			
		||||
      # CPU Statistics
 | 
			
		||||
      cpu_load_change = true;
 | 
			
		||||
      cpu_load_color = [
 | 
			
		||||
        "39F900"
 | 
			
		||||
        "FDFD09"
 | 
			
		||||
        "B22222"
 | 
			
		||||
      ];
 | 
			
		||||
      cpu_load_value = [
 | 
			
		||||
        60
 | 
			
		||||
        90
 | 
			
		||||
      ];
 | 
			
		||||
      cpu_mhz = true;
 | 
			
		||||
      cpu_power = true;
 | 
			
		||||
      cpu_stats = true;
 | 
			
		||||
      cpu_temp = true;
 | 
			
		||||
 | 
			
		||||
      # IO Statistics
 | 
			
		||||
      io_read = true;
 | 
			
		||||
      io_stats = true;
 | 
			
		||||
      io_write = true;
 | 
			
		||||
 | 
			
		||||
      # RAM Statistics
 | 
			
		||||
      ram = true;
 | 
			
		||||
      swap = true;
 | 
			
		||||
      vram = true;
 | 
			
		||||
 | 
			
		||||
      # FPS Statistics
 | 
			
		||||
      fps = true;
 | 
			
		||||
      fps_color_change = true;
 | 
			
		||||
      fps_value = [
 | 
			
		||||
        60
 | 
			
		||||
        90
 | 
			
		||||
      ];
 | 
			
		||||
      fps_color = [
 | 
			
		||||
        "B22222"
 | 
			
		||||
        "FDFD09"
 | 
			
		||||
        "39F900"
 | 
			
		||||
      ];
 | 
			
		||||
      frametime = true;
 | 
			
		||||
      frame_timing = true; # Display graphs
 | 
			
		||||
      histogram = true; # ^
 | 
			
		||||
 | 
			
		||||
      # Show whether gamemode is enabled for the application.
 | 
			
		||||
      gamemode = true;
 | 
			
		||||
 | 
			
		||||
      # Make so MangoHud starts hidden.
 | 
			
		||||
      no_display = true;
 | 
			
		||||
 | 
			
		||||
      # Show whether the GPU is throttling.
 | 
			
		||||
      throttling_status = true;
 | 
			
		||||
 | 
			
		||||
      # Show wine/proton version.
 | 
			
		||||
      wine = true;
 | 
			
		||||
 | 
			
		||||
      # Show the vulkan driver in-use.
 | 
			
		||||
      vulkan_driver = true;
 | 
			
		||||
 | 
			
		||||
      # Display the process' memory usage.
 | 
			
		||||
      procmem = true;
 | 
			
		||||
 | 
			
		||||
      # Show the application's architecture.
 | 
			
		||||
      arch = true;
 | 
			
		||||
 | 
			
		||||
      # Where to output log files.
 | 
			
		||||
      output_folder = /home/wizardlink/.config/MangoHud;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										73
									
								
								modules/home-manager/programs/neovim/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								modules/home-manager/programs/neovim/README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,73 @@
 | 
			
		|||
# My [Home Manager] module for neovim configuration
 | 
			
		||||
 | 
			
		||||
This is my personal configuration for _[neovim]_ using [Nix](https://nixos.org/), so this will not work outside of it - though it can be made to be.
 | 
			
		||||
 | 
			
		||||
In this case, I am outputting a [Home Manager] module to be used directly in your configuration, it currently barely has
 | 
			
		||||
any
 | 
			
		||||
options and is opinionated due to it being my personal configuration for daily use... But I plan to slowly add options
 | 
			
		||||
to make it usable by other people.
 | 
			
		||||
 | 
			
		||||
## Installing
 | 
			
		||||
 | 
			
		||||
First you add this repository as a flake input:
 | 
			
		||||
 | 
			
		||||
```nix
 | 
			
		||||
{
 | 
			
		||||
  inputs = {
 | 
			
		||||
    home-manager = {
 | 
			
		||||
      url = "github:nix-community/home-manager";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    wizardlink-neovim.url = "git+https://git.thewizard.link/wizardlink/neovim";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { home-manager, ... }@inputs: {
 | 
			
		||||
    homeConfigurations.YOURHOSTNAME = home-manager.lib.homeManagerConfiguration {
 | 
			
		||||
      # ...
 | 
			
		||||
      extraSPecialArgs = inputs;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then in your [Home Manager] configuration you can just import it:
 | 
			
		||||
 | 
			
		||||
```nix
 | 
			
		||||
{ wizardlink-neovim }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    wizardlink-neovim.homeManagerModules.default
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Configuring
 | 
			
		||||
 | 
			
		||||
### [nixd](https://github.com/nix-community/nixd/)
 | 
			
		||||
 | 
			
		||||
```nix
 | 
			
		||||
programs.neovim.flake = {
 | 
			
		||||
  hostname = "nixos"; # Your hostname used to build your system.
 | 
			
		||||
  location = "git+file:///home/wizardlink/.system"; # Where you store your flake.
 | 
			
		||||
};
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## My neovim failed because of package X not existing
 | 
			
		||||
 | 
			
		||||
My configuration is based off of `nixos-unstable` so sometimes your package may not exist or have a different name, I
 | 
			
		||||
apologise for that but I don't plan on maintaining backwards compatibility. :(
 | 
			
		||||
 | 
			
		||||
## How it looks
 | 
			
		||||
 | 
			
		||||
Here's some screenshots of how it currently looks like:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
The theme I'm using is [catppuccin](https://github.com/catppuccin) in case you're curious.
 | 
			
		||||
 | 
			
		||||
[neovim]: https://neovim.io/
 | 
			
		||||
[Home Manager]: https://github.com/nix-community/home-manager
 | 
			
		||||
							
								
								
									
										284
									
								
								modules/home-manager/programs/neovim/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										284
									
								
								modules/home-manager/programs/neovim/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,284 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  inherit (lib) types mkOption;
 | 
			
		||||
  ollamaPackage =
 | 
			
		||||
    if config.programs.neovim.ollama.type == "amd" then pkgs.ollama-rocm else pkgs.ollama-cuda;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.programs.neovim = {
 | 
			
		||||
    flake = {
 | 
			
		||||
      hostname = mkOption {
 | 
			
		||||
        default = "wizdesk";
 | 
			
		||||
        description = "Your NixOS hostname, needed for nixd lsp.";
 | 
			
		||||
        example = "nixos";
 | 
			
		||||
        type = types.str;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      location = mkOption {
 | 
			
		||||
        default = "git+file:///home/wizardlink/.system";
 | 
			
		||||
        description = "Path to your flake location, prepend 'file:///' to it and 'git+' before that if using git.";
 | 
			
		||||
        example = "git+file:///home/wizardlink/.system";
 | 
			
		||||
        type = types.str;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    ollama.type = mkOption {
 | 
			
		||||
      default = "amd";
 | 
			
		||||
      description = "The type of ollama package to install, AMD GPU accelerated or NVIDIA GPU accelerated.";
 | 
			
		||||
      example = "amd";
 | 
			
		||||
      type = types.enum [
 | 
			
		||||
        "amd"
 | 
			
		||||
        "nvidia"
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
    programs.neovim = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      withNodeJs = true;
 | 
			
		||||
      withPython3 = true;
 | 
			
		||||
 | 
			
		||||
      extraLuaConfig = builtins.readFile ./init.lua;
 | 
			
		||||
 | 
			
		||||
      extraPackages = with pkgs; [
 | 
			
		||||
        # Needed by ollama.nvim
 | 
			
		||||
        curl
 | 
			
		||||
        ollamaPackage
 | 
			
		||||
 | 
			
		||||
        # CMAKE
 | 
			
		||||
        neocmakelsp
 | 
			
		||||
 | 
			
		||||
        # C/C++
 | 
			
		||||
        clang-tools
 | 
			
		||||
        gcc # Needed for treesitter
 | 
			
		||||
 | 
			
		||||
        # HTML/CSS/JSON
 | 
			
		||||
        emmet-ls
 | 
			
		||||
        vscode-langservers-extracted
 | 
			
		||||
 | 
			
		||||
        # LUA
 | 
			
		||||
        lua-language-server
 | 
			
		||||
        stylua
 | 
			
		||||
 | 
			
		||||
        # Markdown
 | 
			
		||||
        markdownlint-cli
 | 
			
		||||
        marksman
 | 
			
		||||
        prettierd
 | 
			
		||||
 | 
			
		||||
        # Nix
 | 
			
		||||
        nixd
 | 
			
		||||
        nixfmt-rfc-style
 | 
			
		||||
 | 
			
		||||
        # TypeScript
 | 
			
		||||
        typescript-language-server
 | 
			
		||||
 | 
			
		||||
        # Rust
 | 
			
		||||
        rust-analyzer
 | 
			
		||||
        taplo
 | 
			
		||||
        vscode-extensions.vadimcn.vscode-lldb.adapter
 | 
			
		||||
 | 
			
		||||
        # Vue
 | 
			
		||||
        vue-language-server
 | 
			
		||||
 | 
			
		||||
        # Svelte
 | 
			
		||||
        nodePackages.svelte-language-server
 | 
			
		||||
 | 
			
		||||
        # YAML
 | 
			
		||||
        yaml-language-server
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    xdg.configFile."nvim/lua" = {
 | 
			
		||||
      recursive = true;
 | 
			
		||||
      source = ./lua;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    xdg.configFile."nvim/lua/plugins/astrolsp.lua".text =
 | 
			
		||||
      let
 | 
			
		||||
        hostname = config.programs.neovim.flake.hostname;
 | 
			
		||||
        location = config.programs.neovim.flake.location;
 | 
			
		||||
      in
 | 
			
		||||
      #lua
 | 
			
		||||
      ''
 | 
			
		||||
        -- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
 | 
			
		||||
        -- Configuration documentation can be found with `:h astrolsp`
 | 
			
		||||
        -- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
 | 
			
		||||
        --       as this provides autocomplete and documentation while editing
 | 
			
		||||
 | 
			
		||||
        ---@type LazySpec
 | 
			
		||||
        return {
 | 
			
		||||
          "AstroNvim/astrolsp",
 | 
			
		||||
          ---@type AstroLSPOpts
 | 
			
		||||
          opts = {
 | 
			
		||||
            -- Configuration table of features provided by AstroLSP
 | 
			
		||||
            features = {
 | 
			
		||||
              autoformat = true,      -- enable or disable auto formatting on start
 | 
			
		||||
              codelens = true,        -- enable/disable codelens refresh on start
 | 
			
		||||
              inlay_hints = false,    -- enable/disable inlay hints on start
 | 
			
		||||
              semantic_tokens = true, -- enable/disable semantic token highlighting
 | 
			
		||||
            },
 | 
			
		||||
            -- customize lsp formatting options
 | 
			
		||||
            formatting = {
 | 
			
		||||
              -- control auto formatting on save
 | 
			
		||||
              format_on_save = {
 | 
			
		||||
                enabled = true,     -- enable or disable format on save globally
 | 
			
		||||
                allow_filetypes = { -- enable format on save for specified filetypes only
 | 
			
		||||
                  -- "go",
 | 
			
		||||
                  "c",
 | 
			
		||||
                  "cpp",
 | 
			
		||||
                  "h",
 | 
			
		||||
                  "javascript",
 | 
			
		||||
                  "jsx",
 | 
			
		||||
                  "lua",
 | 
			
		||||
                  "nix",
 | 
			
		||||
                  "rust",
 | 
			
		||||
                  "svelte",
 | 
			
		||||
                  "tsx",
 | 
			
		||||
                  "typescript",
 | 
			
		||||
                },
 | 
			
		||||
                ignore_filetypes = { -- disable format on save for specified filetypes
 | 
			
		||||
                  -- "python",
 | 
			
		||||
                },
 | 
			
		||||
              },
 | 
			
		||||
              disabled = { -- disable formatting capabilities for the listed language servers
 | 
			
		||||
                -- disable lua_ls formatting capability if you want to use StyLua to format your lua code
 | 
			
		||||
                -- "lua_ls",
 | 
			
		||||
              },
 | 
			
		||||
              timeout_ms = 1000, -- default format timeout
 | 
			
		||||
              -- filter = function(client) -- fully override the default formatting function
 | 
			
		||||
              --   return true
 | 
			
		||||
              -- end
 | 
			
		||||
            },
 | 
			
		||||
            -- enable servers that you already have installed without mason
 | 
			
		||||
            servers = {
 | 
			
		||||
              -- "pyright"
 | 
			
		||||
              "clangd",
 | 
			
		||||
              "cmake",
 | 
			
		||||
              "cssls",
 | 
			
		||||
              "eslint",
 | 
			
		||||
              "html",
 | 
			
		||||
              "jsonls",
 | 
			
		||||
              "lua_ls",
 | 
			
		||||
              "marksman",
 | 
			
		||||
              "nixd",
 | 
			
		||||
              "rust_analyzer",
 | 
			
		||||
              "svelte",
 | 
			
		||||
              "taplo",
 | 
			
		||||
              "tsserver",
 | 
			
		||||
              "volar",
 | 
			
		||||
              "yamlls",
 | 
			
		||||
            },
 | 
			
		||||
            -- customize language server configuration options passed to `lspconfig`
 | 
			
		||||
            ---@diagnostic disable: missing-fields
 | 
			
		||||
            config = {
 | 
			
		||||
              -- clangd = { capabilities = { offsetEncoding = "utf-8" } },
 | 
			
		||||
              nixd = {
 | 
			
		||||
                settings = {
 | 
			
		||||
                  nixd = {
 | 
			
		||||
                    options = {
 | 
			
		||||
                      nixos = {
 | 
			
		||||
                        expr = '(builtins.getFlake ("${location}")).nixosConfigurations.${hostname}.options',
 | 
			
		||||
                      },
 | 
			
		||||
                      home_manager = {
 | 
			
		||||
                        expr =
 | 
			
		||||
                        '(builtins.getFlake ("${location}")).homeConfigurations.${hostname}.options',
 | 
			
		||||
                      },
 | 
			
		||||
                    },
 | 
			
		||||
                  },
 | 
			
		||||
                },
 | 
			
		||||
              },
 | 
			
		||||
              tsserver = {
 | 
			
		||||
                init_options = {
 | 
			
		||||
                  plugins = {
 | 
			
		||||
                    {
 | 
			
		||||
                      name = "@vue/typescript-plugin",
 | 
			
		||||
                      location = "${pkgs.vue-language-server}/bin/vue-language-server",
 | 
			
		||||
                      languages = { "javascript", "typescript", "vue" },
 | 
			
		||||
                    },
 | 
			
		||||
                  },
 | 
			
		||||
                },
 | 
			
		||||
                filetypes = {
 | 
			
		||||
                  "javascript",
 | 
			
		||||
                  "typescript",
 | 
			
		||||
                  "vue",
 | 
			
		||||
                },
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            -- customize how language servers are attached
 | 
			
		||||
            handlers = {
 | 
			
		||||
              -- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server
 | 
			
		||||
              -- function(server, opts) require("lspconfig")[server].setup(opts) end
 | 
			
		||||
 | 
			
		||||
              -- the key is the server that is being setup with `lspconfig`
 | 
			
		||||
              -- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
 | 
			
		||||
              -- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed
 | 
			
		||||
            },
 | 
			
		||||
            -- Configure buffer local auto commands to add when attaching a language server
 | 
			
		||||
            autocmds = {
 | 
			
		||||
              -- first key is the `augroup` to add the auto commands to (:h augroup)
 | 
			
		||||
              lsp_document_highlight = {
 | 
			
		||||
                -- Optional condition to create/delete auto command group
 | 
			
		||||
                -- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
 | 
			
		||||
                -- condition will be resolved for each client on each execution and if it ever fails for all clients,
 | 
			
		||||
                -- the auto commands will be deleted for that buffer
 | 
			
		||||
                cond = "textDocument/documentHighlight",
 | 
			
		||||
                -- cond = function(client, bufnr) return client.name == "lua_ls" end,
 | 
			
		||||
                -- list of auto commands to set
 | 
			
		||||
                {
 | 
			
		||||
                  -- events to trigger
 | 
			
		||||
                  event = { "CursorHold", "CursorHoldI" },
 | 
			
		||||
                  -- the rest of the autocmd options (:h nvim_create_autocmd)
 | 
			
		||||
                  desc = "Document Highlighting",
 | 
			
		||||
                  callback = function()
 | 
			
		||||
                    vim.lsp.buf.document_highlight()
 | 
			
		||||
                  end,
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  event = { "CursorMoved", "CursorMovedI", "BufLeave" },
 | 
			
		||||
                  desc = "Document Highlighting Clear",
 | 
			
		||||
                  callback = function()
 | 
			
		||||
                    vim.lsp.buf.clear_references()
 | 
			
		||||
                  end,
 | 
			
		||||
                },
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            -- mappings to be set up on attaching of a language server
 | 
			
		||||
            mappings = {
 | 
			
		||||
              n = {
 | 
			
		||||
                gl = {
 | 
			
		||||
                  function()
 | 
			
		||||
                    vim.diagnostic.open_float()
 | 
			
		||||
                  end,
 | 
			
		||||
                  desc = "Hover diagnostics",
 | 
			
		||||
                },
 | 
			
		||||
                -- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
 | 
			
		||||
                -- gD = {
 | 
			
		||||
                --   function() vim.lsp.buf.declaration() end,
 | 
			
		||||
                --   desc = "Declaration of current symbol",
 | 
			
		||||
                --   cond = "textDocument/declaration",
 | 
			
		||||
                -- },
 | 
			
		||||
                -- ["<Leader>uY"] = {
 | 
			
		||||
                --   function() require("astrolsp.toggles").buffer_semantic_tokens() end,
 | 
			
		||||
                --   desc = "Toggle LSP semantic highlight (buffer)",
 | 
			
		||||
                --   cond = function(client) return client.server_capabilities.semanticTokensProvider and vim.lsp.semantic_tokens end,
 | 
			
		||||
                -- },
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            -- A custom `on_attach` function to be run after the default `on_attach` function
 | 
			
		||||
            -- takes two parameters `client` and `bufnr`  (`:h lspconfig-setup`)
 | 
			
		||||
            on_attach = function(client, bufnr)
 | 
			
		||||
              -- this would disable semanticTokensProvider for all clients
 | 
			
		||||
              -- client.server_capabilities.semanticTokensProvider = nil
 | 
			
		||||
            end,
 | 
			
		||||
          },
 | 
			
		||||
        }
 | 
			
		||||
      '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								modules/home-manager/programs/neovim/docs/example_1.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								modules/home-manager/programs/neovim/docs/example_1.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.5 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								modules/home-manager/programs/neovim/docs/example_2.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								modules/home-manager/programs/neovim/docs/example_2.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.6 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								modules/home-manager/programs/neovim/docs/example_3.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								modules/home-manager/programs/neovim/docs/example_3.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.7 MiB  | 
							
								
								
									
										19
									
								
								modules/home-manager/programs/neovim/init.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/home-manager/programs/neovim/init.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
 | 
			
		||||
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
 | 
			
		||||
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
 | 
			
		||||
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
 | 
			
		||||
  -- stylua: ignore
 | 
			
		||||
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
 | 
			
		||||
end
 | 
			
		||||
vim.opt.rtp:prepend(lazypath)
 | 
			
		||||
 | 
			
		||||
-- validate that lazy is available
 | 
			
		||||
if not pcall(require, "lazy") then
 | 
			
		||||
  -- stylua: ignore
 | 
			
		||||
  vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
 | 
			
		||||
  vim.fn.getchar()
 | 
			
		||||
  vim.cmd.quit()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
require "lazy_setup"
 | 
			
		||||
require "polish"
 | 
			
		||||
							
								
								
									
										40
									
								
								modules/home-manager/programs/neovim/lua/community.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								modules/home-manager/programs/neovim/lua/community.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
-- AstroCommunity: import any community modules here
 | 
			
		||||
-- We import this file in `lazy_setup.lua` before the `plugins/` folder.
 | 
			
		||||
-- This guarantees that the specs are processed before any user plugins.
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  "AstroNvim/astrocommunity",
 | 
			
		||||
  { import = "astrocommunity.colorscheme.catppuccin" },
 | 
			
		||||
  {
 | 
			
		||||
    "catppuccin/nvim",
 | 
			
		||||
    name = "catppuccin",
 | 
			
		||||
    opts = function(_, config)
 | 
			
		||||
      config.flavour = "frappe"
 | 
			
		||||
      config.transparent_background = true
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  { import = "astrocommunity.editing-support.todo-comments-nvim" },
 | 
			
		||||
  { import = "astrocommunity.editing-support.zen-mode-nvim" },
 | 
			
		||||
 | 
			
		||||
  { import = "astrocommunity.motion.flash-nvim" },
 | 
			
		||||
  { import = "astrocommunity.motion.flit-nvim" },
 | 
			
		||||
  { import = "astrocommunity.motion.leap-nvim" },
 | 
			
		||||
  { import = "astrocommunity.motion.mini-ai" },
 | 
			
		||||
  { import = "astrocommunity.motion.mini-surround" },
 | 
			
		||||
 | 
			
		||||
  { import = "astrocommunity.pack.cmake" },
 | 
			
		||||
  { import = "astrocommunity.pack.cpp" },
 | 
			
		||||
  { import = "astrocommunity.pack.godot" },
 | 
			
		||||
  { import = "astrocommunity.pack.html-css" },
 | 
			
		||||
  { import = "astrocommunity.pack.json" },
 | 
			
		||||
  { import = "astrocommunity.pack.lua" },
 | 
			
		||||
  { import = "astrocommunity.pack.markdown" },
 | 
			
		||||
  { import = "astrocommunity.pack.nix" },
 | 
			
		||||
  { import = "astrocommunity.pack.rust" },
 | 
			
		||||
  { import = "astrocommunity.pack.toml" },
 | 
			
		||||
  { import = "astrocommunity.pack.typescript" },
 | 
			
		||||
  { import = "astrocommunity.pack.vue" },
 | 
			
		||||
  { import = "astrocommunity.pack.yaml" },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								modules/home-manager/programs/neovim/lua/lazy_setup.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								modules/home-manager/programs/neovim/lua/lazy_setup.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
require("lazy").setup({
 | 
			
		||||
  {
 | 
			
		||||
    "AstroNvim/AstroNvim",
 | 
			
		||||
    --version = "^4", -- Remove version tracking to elect for nighly AstroNvim
 | 
			
		||||
    import = "astronvim.plugins",
 | 
			
		||||
    opts = { -- AstroNvim options must be set here with the `import` key
 | 
			
		||||
      mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
 | 
			
		||||
      maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up
 | 
			
		||||
      icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available)
 | 
			
		||||
      pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  { import = "community" },
 | 
			
		||||
  { import = "plugins" },
 | 
			
		||||
} --[[@as LazySpec]], {
 | 
			
		||||
  -- Configure any other `lazy.nvim` configuration options here
 | 
			
		||||
  install = { colorscheme = { "astrodark", "habamax" } },
 | 
			
		||||
  ui = { backdrop = 100 },
 | 
			
		||||
  performance = {
 | 
			
		||||
    rtp = {
 | 
			
		||||
      -- disable some rtp plugins, add more to your liking
 | 
			
		||||
      disabled_plugins = {
 | 
			
		||||
        "gzip",
 | 
			
		||||
        "netrwPlugin",
 | 
			
		||||
        "tarPlugin",
 | 
			
		||||
        "tohtml",
 | 
			
		||||
        "zipPlugin",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
} --[[@as LazyConfig]])
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,84 @@
 | 
			
		|||
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
 | 
			
		||||
-- Configuration documentation can be found with `:h astrocore`
 | 
			
		||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
 | 
			
		||||
--       as this provides autocomplete and documentation while editing
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  "AstroNvim/astrocore",
 | 
			
		||||
  ---@type AstroCoreOpts
 | 
			
		||||
  opts = {
 | 
			
		||||
    -- Configure core features of AstroNvim
 | 
			
		||||
    features = {
 | 
			
		||||
      large_buf = { size = 1024 * 500, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
 | 
			
		||||
      autopairs = true,                              -- enable autopairs at start
 | 
			
		||||
      cmp = true,                                    -- enable completion at start
 | 
			
		||||
      diagnostics_mode = 3,                          -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on)
 | 
			
		||||
      highlighturl = true,                           -- highlight URLs at start
 | 
			
		||||
      notifications = true,                          -- enable notifications at start
 | 
			
		||||
    },
 | 
			
		||||
    -- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
 | 
			
		||||
    diagnostics = {
 | 
			
		||||
      virtual_text = true,
 | 
			
		||||
      underline = true,
 | 
			
		||||
    },
 | 
			
		||||
    -- vim options can be configured here
 | 
			
		||||
    options = {
 | 
			
		||||
      opt = {                 -- vim.opt.<key>
 | 
			
		||||
        autoindent = true,    -- indents automatically based on context
 | 
			
		||||
        expandtab = true,     -- use spaces instead of tabs
 | 
			
		||||
        grepprg = "rg --vimgrep", -- use ripgrep on grep actions
 | 
			
		||||
        number = true,        -- sets vim.opt.number
 | 
			
		||||
        relativenumber = true, -- sets vim.opt.relativenumber
 | 
			
		||||
        shiftwidth = 2,       -- how many spaces after indentation
 | 
			
		||||
        signcolumn = "auto",  -- sets vim.opt.signcolumn to auto
 | 
			
		||||
        smartindent = true,   -- smartly indent
 | 
			
		||||
        spell = false,        -- sets vim.opt.spell
 | 
			
		||||
        tabstop = 2,          -- how many spaces to indent when pressing tab
 | 
			
		||||
        wrap = false,         -- sets vim.opt.wrap
 | 
			
		||||
      },
 | 
			
		||||
      g = {                   -- vim.g.<key>
 | 
			
		||||
        -- configure global vim variables (vim.g)
 | 
			
		||||
        -- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup`
 | 
			
		||||
        -- This can be found in the `lua/lazy_setup.lua` file
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    -- Mappings can be configured through AstroCore as well.
 | 
			
		||||
    -- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
 | 
			
		||||
    mappings = {
 | 
			
		||||
      -- first key is the mode
 | 
			
		||||
      n = {
 | 
			
		||||
        -- second key is the lefthand side of the map
 | 
			
		||||
 | 
			
		||||
        -- navigate buffer tabs with `H` and `L`
 | 
			
		||||
        -- L = {
 | 
			
		||||
        --   function() require("astrocore.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end,
 | 
			
		||||
        --   desc = "Next buffer",
 | 
			
		||||
        -- },
 | 
			
		||||
        -- H = {
 | 
			
		||||
        --   function() require("astrocore.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) end,
 | 
			
		||||
        --   desc = "Previous buffer",
 | 
			
		||||
        -- },
 | 
			
		||||
 | 
			
		||||
        -- mappings seen under group name "Buffer"
 | 
			
		||||
        ["<Leader>bD"] = {
 | 
			
		||||
          function()
 | 
			
		||||
            require("astroui.status.heirline").buffer_picker(function(bufnr)
 | 
			
		||||
              require("astrocore.buffer").close(bufnr)
 | 
			
		||||
            end)
 | 
			
		||||
          end,
 | 
			
		||||
          desc = "Pick to close",
 | 
			
		||||
        },
 | 
			
		||||
        -- tables with just a `desc` key will be registered with which-key if it's installed
 | 
			
		||||
        -- this is useful for naming menus
 | 
			
		||||
        ["<Leader>b"] = { desc = "Buffers" },
 | 
			
		||||
        -- quick save
 | 
			
		||||
        -- ["<C-s>"] = { ":w!<cr>", desc = "Save File" },  -- change description but the same command
 | 
			
		||||
      },
 | 
			
		||||
      t = {
 | 
			
		||||
        -- setting a mapping to false will disable it
 | 
			
		||||
        -- ["<esc>"] = false,
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								modules/home-manager/programs/neovim/lua/plugins/astroui.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								modules/home-manager/programs/neovim/lua/plugins/astroui.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
-- AstroUI provides the basis for configuring the AstroNvim User Interface
 | 
			
		||||
-- Configuration documentation can be found with `:h astroui`
 | 
			
		||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
 | 
			
		||||
--       as this provides autocomplete and documentation while editing
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  "AstroNvim/astroui",
 | 
			
		||||
  ---@type AstroUIOpts
 | 
			
		||||
  opts = {
 | 
			
		||||
    -- change colorscheme
 | 
			
		||||
    colorscheme = "catppuccin",
 | 
			
		||||
    -- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
 | 
			
		||||
    highlights = {
 | 
			
		||||
      init = { -- this table overrides highlights in all themes
 | 
			
		||||
        -- Normal = { bg = "#000000" },
 | 
			
		||||
      },
 | 
			
		||||
      astrotheme = { -- a table of overrides/changes when applying the astrotheme theme
 | 
			
		||||
        -- Normal = { bg = "#000000" },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    -- Icons can be configured throughout the interface
 | 
			
		||||
    icons = {
 | 
			
		||||
      -- configure the loading of the lsp in the status line
 | 
			
		||||
      LSPLoading1 = "⠋",
 | 
			
		||||
      LSPLoading2 = "⠙",
 | 
			
		||||
      LSPLoading3 = "⠹",
 | 
			
		||||
      LSPLoading4 = "⠸",
 | 
			
		||||
      LSPLoading5 = "⠼",
 | 
			
		||||
      LSPLoading6 = "⠴",
 | 
			
		||||
      LSPLoading7 = "⠦",
 | 
			
		||||
      LSPLoading8 = "⠧",
 | 
			
		||||
      LSPLoading9 = "⠇",
 | 
			
		||||
      LSPLoading10 = "⠏",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								modules/home-manager/programs/neovim/lua/plugins/mason.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								modules/home-manager/programs/neovim/lua/plugins/mason.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
-- Customize Mason plugins
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  -- use mason-lspconfig to configure LSP installations
 | 
			
		||||
  {
 | 
			
		||||
    "williamboman/mason-lspconfig.nvim",
 | 
			
		||||
    -- overrides `require("mason-lspconfig").setup(...)`
 | 
			
		||||
    opts = function(_, opts)
 | 
			
		||||
      opts.ensure_installed = nil
 | 
			
		||||
      opts.automatic_installation = false
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  -- use mason-null-ls to configure Formatters/Linter installation for null-ls sources
 | 
			
		||||
  {
 | 
			
		||||
    "jay-babu/mason-null-ls.nvim",
 | 
			
		||||
    -- overrides `require("mason-null-ls").setup(...)`
 | 
			
		||||
    opts = function(_, opts)
 | 
			
		||||
      opts.ensure_installed = nil
 | 
			
		||||
      opts.automatic_installation = false
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "jay-babu/mason-nvim-dap.nvim",
 | 
			
		||||
    -- overrides `require("mason-nvim-dap").setup(...)`
 | 
			
		||||
    opts = function(_, opts)
 | 
			
		||||
      opts.ensure_installed = nil
 | 
			
		||||
      opts.automatic_installation = false
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/home-manager/programs/neovim/lua/plugins/none-ls.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/home-manager/programs/neovim/lua/plugins/none-ls.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
-- Customize None-ls sources
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  "nvimtools/none-ls.nvim",
 | 
			
		||||
  opts = function(_, config)
 | 
			
		||||
    -- config variable is the default configuration table for the setup function call
 | 
			
		||||
    local null_ls = require("null-ls")
 | 
			
		||||
 | 
			
		||||
    -- Check supported formatters and linters
 | 
			
		||||
    -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting
 | 
			
		||||
    -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
 | 
			
		||||
    config.sources = {
 | 
			
		||||
      -- Set a formatter
 | 
			
		||||
      null_ls.builtins.formatting.clang_format,
 | 
			
		||||
      null_ls.builtins.formatting.nixfmt,
 | 
			
		||||
      null_ls.builtins.formatting.prettier,
 | 
			
		||||
      null_ls.builtins.formatting.stylua,
 | 
			
		||||
    }
 | 
			
		||||
    return config -- return final config table
 | 
			
		||||
  end,
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
-- Customize Treesitter
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
  "nvim-treesitter/nvim-treesitter",
 | 
			
		||||
  opts = function(_, opts)
 | 
			
		||||
    -- add more things to the ensure_installed table protecting against community packs modifying it
 | 
			
		||||
    opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed, {
 | 
			
		||||
      -- Programming
 | 
			
		||||
      "c",
 | 
			
		||||
      "cmake",
 | 
			
		||||
      "cpp",
 | 
			
		||||
      "css",
 | 
			
		||||
      "gdscript",
 | 
			
		||||
      "godot_resource",
 | 
			
		||||
      "html",
 | 
			
		||||
      "hyprlang",
 | 
			
		||||
      "javascript",
 | 
			
		||||
      "jsdoc",
 | 
			
		||||
      "lua",
 | 
			
		||||
      "nim",
 | 
			
		||||
      "nim_format_string",
 | 
			
		||||
      "objc",
 | 
			
		||||
      "proto",
 | 
			
		||||
      "python",
 | 
			
		||||
      "svelte",
 | 
			
		||||
      "tsx",
 | 
			
		||||
      "typescript",
 | 
			
		||||
      "vue",
 | 
			
		||||
      -- Scripting
 | 
			
		||||
      "bash",
 | 
			
		||||
      "glsl",
 | 
			
		||||
      -- Configuring
 | 
			
		||||
      "dockerfile",
 | 
			
		||||
      "json",
 | 
			
		||||
      "jsonc",
 | 
			
		||||
      "nix",
 | 
			
		||||
      "yaml",
 | 
			
		||||
      -- Misc
 | 
			
		||||
      "cuda",
 | 
			
		||||
      "markdown",
 | 
			
		||||
      "markdown_inline",
 | 
			
		||||
      "query",
 | 
			
		||||
      -- VIM
 | 
			
		||||
      "vim",
 | 
			
		||||
      "vimdoc",
 | 
			
		||||
    })
 | 
			
		||||
  end,
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										93
									
								
								modules/home-manager/programs/neovim/lua/plugins/user.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								modules/home-manager/programs/neovim/lua/plugins/user.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,93 @@
 | 
			
		|||
-- You can also add or configure plugins by creating files in this `plugins/` folder
 | 
			
		||||
-- Here are some examples:
 | 
			
		||||
 | 
			
		||||
---@type LazySpec
 | 
			
		||||
return {
 | 
			
		||||
 | 
			
		||||
  -- Discord presence
 | 
			
		||||
  "andweeb/presence.nvim",
 | 
			
		||||
  {
 | 
			
		||||
    "ray-x/lsp_signature.nvim",
 | 
			
		||||
    event = "BufRead",
 | 
			
		||||
    config = function()
 | 
			
		||||
      require("lsp_signature").setup()
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- Customize alpha options
 | 
			
		||||
  {
 | 
			
		||||
    "goolord/alpha-nvim",
 | 
			
		||||
    opts = function(_, opts)
 | 
			
		||||
      -- customize the dashboard header
 | 
			
		||||
      opts.section.header.val = {
 | 
			
		||||
        "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣶⣶⣾⣿⣿⣿⣿⣷⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣾⣿⣿⣿⣿⣷⣶⣶⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⢀⣠⡴⠾⠟⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠷⢦⣄⡀⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠘⠋⠁⠀⠀⢀⣀⣤⣶⣖⣒⣒⡲⠶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠶⢖⣒⣒⣲⣶⣤⣀⡀⠀⠀⠈⠙⠂⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⠀⠀⣠⢖⣫⣷⣿⣿⣿⣿⣿⣿⣶⣤⡙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⢋⣤⣾⣿⣿⣿⣿⣿⣿⣾⣝⡲⣄⠀⠀⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⣄⣀⣠⢿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠻⢿⣿⣿⣦⣳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣟⣴⣿⣿⡿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⡻⣄⣀⣤⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠈⠟⣿⣿⣿⡿⢻⣿⣿⣿⠃⠀⠀⠀⠀⠙⣿⣿⣿⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⣿⣿⣿⠋⠀⠀⠀⠀⠘⣿⣿⣿⡟⢿⣿⣿⣟⠻⠁⠀⠀⠀",
 | 
			
		||||
        "⠤⣤⣶⣶⣿⣿⣿⡟⠀⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⢻⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⠀⠀⠀⠀⠀⠀⣹⣿⣿⣷⠈⢻⣿⣿⣿⣶⣦⣤⠤",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⢻⣟⠀⠀⣿⣿⣿⣿⡀⠀⠀⠀⠀⢀⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⣿⣿⡀⠀⠀⠀⠀⢀⣿⣿⣿⣿⠀⠀⣿⡟⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⠀⠻⣆⠀⢹⣿⠟⢿⣿⣦⣤⣤⣴⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡿⢷⣤⣤⣤⣴⣿⣿⣿⣿⡇⠀⣰⠟⠀⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⠀⠀⠙⠂⠀⠙⢀⣀⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠁⠀⣻⣿⣿⣿⣿⣿⣿⠏⠀⠘⠃⠀⠀⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡈⠻⠿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⢿⣿⣿⣿⠿⠛⢁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
 | 
			
		||||
        "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠛⣶⣦⣤⣤⣤⡤⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⢤⣤⣤⣤⣶⣾⠛⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
 | 
			
		||||
      }
 | 
			
		||||
      return opts
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- Adds highlighting and lsp features for embedded code in documents.
 | 
			
		||||
  {
 | 
			
		||||
    "jmbuhr/otter.nvim",
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      "hrsh7th/nvim-cmp",
 | 
			
		||||
      "neovim/nvim-lspconfig",
 | 
			
		||||
      "nvim-treesitter/nvim-treesitter",
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- Adds highlighting and custom commands for ledger files
 | 
			
		||||
  {
 | 
			
		||||
    "ledger/vim-ledger",
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- Better UI hooks
 | 
			
		||||
  {
 | 
			
		||||
    "stevearc/dressing.nvim",
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- Add Ollama support in-editor
 | 
			
		||||
  {
 | 
			
		||||
    "nomnivore/ollama.nvim",
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      "nvim-lua/plenary.nvim",
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    -- All the user commands added by the plugin
 | 
			
		||||
    cmd = { "Ollama", "OllamaModel", "OllamaServe", "OllamaServeStop" },
 | 
			
		||||
 | 
			
		||||
    keys = {
 | 
			
		||||
      -- Sample keybind for prompt menu. Note that the <c-u> is important for selections to work properly.
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>oo",
 | 
			
		||||
        ":<c-u>lua require('ollama').prompt()<cr>",
 | 
			
		||||
        desc = "ollama prompt",
 | 
			
		||||
        mode = { "n", "v" },
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      -- Sample keybind for direct prompting. Note that the <c-u> is important for selections to work properly.
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>oG",
 | 
			
		||||
        ":<c-u>lua require('ollama').prompt('Generate_Code')<cr>",
 | 
			
		||||
        desc = "ollama Generate Code",
 | 
			
		||||
        mode = { "n", "v" },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    ---@type Ollama.Config
 | 
			
		||||
    opts = {
 | 
			
		||||
      -- your configuration overrides
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								modules/home-manager/programs/neovim/lua/polish.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/home-manager/programs/neovim/lua/polish.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
-- This will run last in the setup process and is a good place to configure
 | 
			
		||||
-- things like custom filetypes. This just pure lua so anything that doesn't
 | 
			
		||||
-- fit in the normal config locations above can go here
 | 
			
		||||
 | 
			
		||||
-- Set up custom filetypes
 | 
			
		||||
vim.filetype.add {
 | 
			
		||||
  extension = {
 | 
			
		||||
    foo = "fooscript",
 | 
			
		||||
  },
 | 
			
		||||
  filename = {
 | 
			
		||||
    ["Foofile"] = "fooscript",
 | 
			
		||||
  },
 | 
			
		||||
  pattern = {
 | 
			
		||||
    ["~/%.config/foo/.*"] = "fooscript",
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
local dap = require "dap"
 | 
			
		||||
 | 
			
		||||
dap.adapters.codelldb = {
 | 
			
		||||
  port = "${port}",
 | 
			
		||||
  type = "server",
 | 
			
		||||
  executable = {
 | 
			
		||||
    command = "codelldb",
 | 
			
		||||
    args = { "--port", "${port}" },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dap.configurations.rust = {
 | 
			
		||||
  {
 | 
			
		||||
    name = "Launch file",
 | 
			
		||||
    type = "codelldb",
 | 
			
		||||
    request = "launch",
 | 
			
		||||
    program = function() return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") end,
 | 
			
		||||
    cwd = "${workspaceFolder}",
 | 
			
		||||
    stopOnEntry = false,
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								modules/home-manager/programs/obs-studio.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								modules/home-manager/programs/obs-studio.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.obs-studio = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    plugins = with pkgs.obs-studio-plugins; [
 | 
			
		||||
      input-overlay
 | 
			
		||||
      obs-backgroundremoval
 | 
			
		||||
      obs-pipewire-audio-capture
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										111
									
								
								modules/home-manager/programs/rofi/catppuccin-frappe.rasi
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								modules/home-manager/programs/rofi/catppuccin-frappe.rasi
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,111 @@
 | 
			
		|||
* {
 | 
			
		||||
    bg-col:  #303446;
 | 
			
		||||
    bg-col-light: #303446;
 | 
			
		||||
    border-col: #303446;
 | 
			
		||||
    selected-col: #303446;
 | 
			
		||||
    blue: #8caaee;
 | 
			
		||||
    fg-col: #c6d0f5;
 | 
			
		||||
    fg-col2: #e78284;
 | 
			
		||||
    grey: #737994;
 | 
			
		||||
 | 
			
		||||
    width: 600;
 | 
			
		||||
    font: "FantasqueSansM Nerd Font 14";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
element-text, element-icon , mode-switcher {
 | 
			
		||||
    background-color: inherit;
 | 
			
		||||
    text-color:       inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
window {
 | 
			
		||||
    height: 360px;
 | 
			
		||||
    border: 3px;
 | 
			
		||||
    border-color: @border-col;
 | 
			
		||||
    background-color: @bg-col;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mainbox {
 | 
			
		||||
    background-color: @bg-col;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inputbar {
 | 
			
		||||
    children: [prompt,entry];
 | 
			
		||||
    background-color: @bg-col;
 | 
			
		||||
    border-radius: 5px;
 | 
			
		||||
    padding: 2px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
prompt {
 | 
			
		||||
    background-color: @blue;
 | 
			
		||||
    padding: 6px;
 | 
			
		||||
    text-color: @bg-col;
 | 
			
		||||
    border-radius: 3px;
 | 
			
		||||
    margin: 20px 0px 0px 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
textbox-prompt-colon {
 | 
			
		||||
    expand: false;
 | 
			
		||||
    str: ":";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
entry {
 | 
			
		||||
    padding: 6px;
 | 
			
		||||
    margin: 20px 0px 0px 10px;
 | 
			
		||||
    text-color: @fg-col;
 | 
			
		||||
    background-color: @bg-col;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
listview {
 | 
			
		||||
    border: 0px 0px 0px;
 | 
			
		||||
    padding: 6px 0px 0px;
 | 
			
		||||
    margin: 10px 0px 0px 20px;
 | 
			
		||||
    columns: 2;
 | 
			
		||||
    lines: 5;
 | 
			
		||||
    background-color: @bg-col;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
element {
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    background-color: @bg-col;
 | 
			
		||||
    text-color: @fg-col  ;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
element-icon {
 | 
			
		||||
    size: 25px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
element selected {
 | 
			
		||||
    background-color:  @selected-col ;
 | 
			
		||||
    text-color: @fg-col2  ;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mode-switcher {
 | 
			
		||||
    spacing: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
button {
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
    background-color: @bg-col-light;
 | 
			
		||||
    text-color: @grey;
 | 
			
		||||
    vertical-align: 0.5; 
 | 
			
		||||
    horizontal-align: 0.5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
button selected {
 | 
			
		||||
  background-color: @bg-col;
 | 
			
		||||
  text-color: @blue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message {
 | 
			
		||||
    background-color: @bg-col-light;
 | 
			
		||||
    margin: 2px;
 | 
			
		||||
    padding: 2px;
 | 
			
		||||
    border-radius: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
textbox {
 | 
			
		||||
    padding: 6px;
 | 
			
		||||
    margin: 20px 0px 0px 20px;
 | 
			
		||||
    text-color: @blue;
 | 
			
		||||
    background-color: @bg-col-light;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								modules/home-manager/programs/rofi/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/home-manager/programs/rofi/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.rofi = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.rofi-wayland;
 | 
			
		||||
 | 
			
		||||
    font = "FantasqueSansM Nerd Font";
 | 
			
		||||
 | 
			
		||||
    extraConfig = {
 | 
			
		||||
      disable-history = false;
 | 
			
		||||
      display-Network = "   Network";
 | 
			
		||||
      display-drun = "   Apps ";
 | 
			
		||||
      display-run = "   Run ";
 | 
			
		||||
      display-window = "   Window";
 | 
			
		||||
      drun-display-format = "{icon} {name}";
 | 
			
		||||
      hide-scrollbar = true;
 | 
			
		||||
      icon-theme = "Papirus-Dark";
 | 
			
		||||
      location = 0;
 | 
			
		||||
      modi = "run,drun,window";
 | 
			
		||||
      show-icons = true;
 | 
			
		||||
      sidebar-mode = true;
 | 
			
		||||
      terminal = "alacritty";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    theme = ./catppuccin-frappe.rasi;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								modules/home-manager/programs/spotify/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/home-manager/programs/spotify/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
{ pkgs, spicetify-nix, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  spicePkgs = spicetify-nix.legacyPackages.${pkgs.system};
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  imports = [ spicetify-nix.homeManagerModules.default ];
 | 
			
		||||
 | 
			
		||||
  programs.spicetify = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    theme = spicePkgs.themes.catppuccin;
 | 
			
		||||
    colorScheme = "frappe";
 | 
			
		||||
 | 
			
		||||
    enabledExtensions = with spicePkgs.extensions; [
 | 
			
		||||
      autoVolume
 | 
			
		||||
      shuffle
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								modules/home-manager/programs/tmux/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								modules/home-manager/programs/tmux/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.tmux = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    clock24 = true;
 | 
			
		||||
    plugins = with pkgs.tmuxPlugins; [
 | 
			
		||||
      {
 | 
			
		||||
        plugin = catppuccin;
 | 
			
		||||
        extraConfig = ''
 | 
			
		||||
          set -g @catppuccin_flavour 'frappe'
 | 
			
		||||
        '';
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										205
									
								
								modules/home-manager/programs/waybar.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										205
									
								
								modules/home-manager/programs/waybar.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,205 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  programs.waybar = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
 | 
			
		||||
    settings = {
 | 
			
		||||
      mainBar = {
 | 
			
		||||
        layer = "top";
 | 
			
		||||
        margin = "10px 10px 0";
 | 
			
		||||
        height = 30;
 | 
			
		||||
 | 
			
		||||
        modules-left = [ "hyprland/workspaces" ];
 | 
			
		||||
        modules-center = [ "clock" ];
 | 
			
		||||
        modules-right = [
 | 
			
		||||
          "network"
 | 
			
		||||
          "memory"
 | 
			
		||||
          "cpu"
 | 
			
		||||
          "temperature"
 | 
			
		||||
          "battery"
 | 
			
		||||
          "tray"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        "hyprland/workspaces" = {
 | 
			
		||||
          format = "{icon}";
 | 
			
		||||
 | 
			
		||||
          format-icons = {
 | 
			
		||||
            active = "";
 | 
			
		||||
            default = "";
 | 
			
		||||
            empty = "";
 | 
			
		||||
            persistent = "";
 | 
			
		||||
            special = "";
 | 
			
		||||
            urgent = "";
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        clock = {
 | 
			
		||||
          format = "{:%H:%M} ";
 | 
			
		||||
          format-alt = "{:%A; %B %d, %Y (%R)} ";
 | 
			
		||||
          tooltip-format = "<tt><small>{calendar}</small></tt>";
 | 
			
		||||
          calendar = {
 | 
			
		||||
            mode = "month";
 | 
			
		||||
            mode-mon-col = 3;
 | 
			
		||||
            weeks-pos = "right";
 | 
			
		||||
            on-scroll = 1;
 | 
			
		||||
            on-click-right = "mode";
 | 
			
		||||
            format = {
 | 
			
		||||
              months = "<span color='#e5c890'><b>{}</b></span>";
 | 
			
		||||
              days = "<span color='#c6d0f5'><b>{}</b></span>";
 | 
			
		||||
              weeks = "<span color='#81c8be'><b>W{}</b></span>";
 | 
			
		||||
              weekdays = "<span color='#ef9f76'><b>{}</b></span>";
 | 
			
		||||
              today = "<span color='#a6d189'><b><u>{}</u></b></span>";
 | 
			
		||||
            };
 | 
			
		||||
            actions = {
 | 
			
		||||
              on-click-backward = "tz_down";
 | 
			
		||||
              on-click-forward = "tz_up";
 | 
			
		||||
              on-click-right = "mode";
 | 
			
		||||
              on-scroll-down = "shift_down";
 | 
			
		||||
              on-scroll-up = "shift_up";
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        network = {
 | 
			
		||||
          interval = 5;
 | 
			
		||||
          format = "  {bandwidthUpBits}  {bandwidthDownBits} ";
 | 
			
		||||
          format-disconnected = " No connection";
 | 
			
		||||
          tooltip-format-wifi = " {essid} ({signalStrength}%)";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        memory = {
 | 
			
		||||
          interval = 5;
 | 
			
		||||
          format = " {percentage}%";
 | 
			
		||||
          states = {
 | 
			
		||||
            warning = 70;
 | 
			
		||||
            critical = 90;
 | 
			
		||||
          };
 | 
			
		||||
          "tooltip-format" = "  {used:0.1f}G/{total:0.1f}G";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        cpu = {
 | 
			
		||||
          interval = 5;
 | 
			
		||||
          tooltip = false;
 | 
			
		||||
          format = " {usage}%";
 | 
			
		||||
          format-alt = " {load}";
 | 
			
		||||
          states = {
 | 
			
		||||
            warning = 70;
 | 
			
		||||
            critical = 90;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        temperature = {
 | 
			
		||||
          critical-threshold = 90;
 | 
			
		||||
          interval = 5;
 | 
			
		||||
          format = "{icon} {temperatureC}°";
 | 
			
		||||
          format-icons = [
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
          ];
 | 
			
		||||
          tooltip = false;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        # Module configuration
 | 
			
		||||
        battery = {
 | 
			
		||||
          interval = 10;
 | 
			
		||||
          states = {
 | 
			
		||||
            warning = 30;
 | 
			
		||||
            critical = 15;
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
          format-time = "{H}:{M:02}";
 | 
			
		||||
          format = "{icon} {capacity}% ({time})";
 | 
			
		||||
          format-charging = " {capacity}% ({time})";
 | 
			
		||||
          format-charging-full = " {capacity}%";
 | 
			
		||||
          format-full = "{icon} {capacity}%";
 | 
			
		||||
          format-alt = "{icon} {power}W";
 | 
			
		||||
          format-icons = [
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
            ""
 | 
			
		||||
          ];
 | 
			
		||||
          tooltip = false;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        tray = {
 | 
			
		||||
          icon-size = 18;
 | 
			
		||||
          spacing = 10;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    style = ''
 | 
			
		||||
      /* Using https://github.com/catppuccin/catppuccin for color reference. */
 | 
			
		||||
 | 
			
		||||
      /* Keyframes */
 | 
			
		||||
      @keyframes blink-critical {
 | 
			
		||||
        to {
 | 
			
		||||
          /*color: @white;*/
 | 
			
		||||
          background-color: @critical;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        all: unset;
 | 
			
		||||
        color: #c6d0f5;
 | 
			
		||||
        font-family: "FantasqueSansM Nerd Font", 'Courier New', Courier, monospace;
 | 
			
		||||
        font-size: 16px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .modules-left,
 | 
			
		||||
      .modules-right,
 | 
			
		||||
      .modules-center {
 | 
			
		||||
        padding: 0 20px;
 | 
			
		||||
        border-radius: 10px;
 | 
			
		||||
        background-color: rgba(48, 52, 70, 0.85);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      tooltip {
 | 
			
		||||
        background-color: rgba(48, 52, 70, 0.85);
 | 
			
		||||
        border-radius: 10px;
 | 
			
		||||
        padding: 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      tooltip label {
 | 
			
		||||
        color: #c6d0f5;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #workspaces {
 | 
			
		||||
        margin-left: -5px;
 | 
			
		||||
        padding-left: 0px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #workspaces button {
 | 
			
		||||
        margin: 0 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #workspaces button:hover {
 | 
			
		||||
        background: #414559;
 | 
			
		||||
        border: none;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #clock {
 | 
			
		||||
        padding: 0 10px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #network, #cpu, #memory, #temperature {
 | 
			
		||||
        margin: 0 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #tray {
 | 
			
		||||
        margin-left: 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #tray menu {
 | 
			
		||||
        background-color: rgba(48, 52, 70, 0.85);
 | 
			
		||||
        border-radius: 10px;
 | 
			
		||||
        padding: 8px;
 | 
			
		||||
      }
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue