diff --git a/README.md b/README.md index 8f21648..78f73d4 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,9 @@ Best way to start off is install KDE first and make changes. These dotfiles are managed by [chezmoi](https://www.chezmoi.io/). +> [!IMPORTANT] +> This repo will be moved to https://git.envs.net/gb/hyprdots. The original one is still available, but it will receive updates less frequently. + > [!WARNING] > Since I'm starting to use kde plasma (again) so the updates to hyprland part would be slower, but other parts will be updated normally. @@ -23,11 +26,11 @@ pacman -S chezmoi 2. apply dotfiles simply overwrite: ```shell -chezmoi init https://codeberg.org/grassblock/hyprdots.git && chezmoi apply -v +chezmoi init https://git.envs.net/gb/hyprdots.git && chezmoi apply -v ``` merge maually: ```shell -chezmoi init https://codeberg.org/grassblock/hyprdots.git && chezmoi merge $FILE +chezmoi init https://git.envs.net/gb/hyprdots.git && chezmoi merge $FILE ``` # Dependencies @@ -44,10 +47,11 @@ chezmoi init https://codeberg.org/grassblock/hyprdots.git && chezmoi merge $FILE - udiskie - networkmanager_dmenu - gradience-git +- darkman # Themes -- Nordic (gtk2/3) +- Graphite Nord (Light) | Nordic (Dark) (gtk2/3) - gradience nord (gtk4 & libadwaita) - Utterly-Nord (qt) -- papirus-dark (icon) +- papirus (icon) - ~~Nordzy-cursors~~ Bibata-Modern-Ice (cursors) diff --git a/home/private_dot_config/emacs/spacemacs/init.el b/home/private_dot_config/emacs/spacemacs/init.el new file mode 100644 index 0000000..deb6d50 --- /dev/null +++ b/home/private_dot_config/emacs/spacemacs/init.el @@ -0,0 +1,616 @@ +;; -*- mode: emacs-lisp; lexical-binding: t -*- +;; This file is loaded by Spacemacs at startup. +;; It must be stored in your home directory. + +(defun dotspacemacs/layers () + "Layer configuration: +This function should only modify configuration layer settings." + (setq-default + ;; Base distribution to use. This is a layer contained in the directory + ;; `+distribution'. For now available distributions are `spacemacs-base' + ;; or `spacemacs'. (default 'spacemacs) + dotspacemacs-distribution 'spacemacs + + ;; Lazy installation of layers (i.e. layers are installed only when a file + ;; with a supported type is opened). Possible values are `all', `unused' + ;; and `nil'. `unused' will lazy install only unused layers (i.e. layers + ;; not listed in variable `dotspacemacs-configuration-layers'), `all' will + ;; lazy install any layer that support lazy installation even the layers + ;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy + ;; installation feature and you have to explicitly list a layer in the + ;; variable `dotspacemacs-configuration-layers' to install it. + ;; (default 'unused) + dotspacemacs-enable-lazy-installation 'unused + + ;; If non-nil then Spacemacs will ask for confirmation before installing + ;; a layer lazily. (default t) + dotspacemacs-ask-for-lazy-installation t + + ;; List of additional paths where to look for configuration layers. + ;; Paths must have a trailing slash (i.e. "~/.mycontribs/") + dotspacemacs-configuration-layer-path '() + + ;; List of configuration layers to load. + dotspacemacs-configuration-layers + '( + ;; ---------------------------------------------------------------- + ;; Example of useful layers you may want to use right away. + ;; Uncomment some layer names and press `SPC f e R' (Vim style) or + ;; `M-m f e R' (Emacs style) to install them. + ;; ---------------------------------------------------------------- + auto-completion + better-defaults + emacs-lisp + git + helm + lsp + markdown + multiple-cursors + org + ;; (shell :variables + ;; shell-default-height 30 + ;; shell-default-position 'bottom) + ;; spell-checking + ;; syntax-checking + ;; version-control + treemacs) + + + ;; List of additional packages that will be installed without being wrapped + ;; in a layer (generally the packages are installed only and should still be + ;; loaded using load/require/use-package in the user-config section below in + ;; this file). If you need some configuration for these packages, then + ;; consider creating a layer. You can also put the configuration in + ;; `dotspacemacs/user-config'. To use a local version of a package, use the + ;; `:location' property: '(your-package :location "~/path/to/your-package/") + ;; Also include the dependencies as they will not be resolved automatically. + dotspacemacs-additional-packages '( + wakatime-mode + nord-theme + netease-cloud-music + netease-cloud-music-ui + netease-cloud-music-donwload-api + ) + + ;; A list of packages that cannot be updated. + dotspacemacs-frozen-packages '() + + ;; A list of packages that will not be installed and loaded. + dotspacemacs-excluded-packages '() + + ;; Defines the behaviour of Spacemacs when installing packages. + ;; Possible values are `used-only', `used-but-keep-unused' and `all'. + ;; `used-only' installs only explicitly used packages and deletes any unused + ;; packages as well as their unused dependencies. `used-but-keep-unused' + ;; installs only the used packages but won't delete unused ones. `all' + ;; installs *all* packages supported by Spacemacs and never uninstalls them. + ;; (default is `used-only') + dotspacemacs-install-packages 'used-only)) + +(defun dotspacemacs/init () + "Initialization: +This function is called at the very beginning of Spacemacs startup, +before layer configuration. +It should only modify the values of Spacemacs settings." + ;; This setq-default sexp is an exhaustive list of all the supported + ;; spacemacs settings. + (setq-default + ;; If non-nil then enable support for the portable dumper. You'll need to + ;; compile Emacs 27 from source following the instructions in file + ;; EXPERIMENTAL.org at to root of the git repository. + ;; + ;; WARNING: pdumper does not work with Native Compilation, so it's disabled + ;; regardless of the following setting when native compilation is in effect. + ;; + ;; (default nil) + dotspacemacs-enable-emacs-pdumper nil + + ;; Name of executable file pointing to emacs 27+. This executable must be + ;; in your PATH. + ;; (default "emacs") + dotspacemacs-emacs-pdumper-executable-file "emacs" + + ;; Name of the Spacemacs dump file. This is the file will be created by the + ;; portable dumper in the cache directory under dumps sub-directory. + ;; To load it when starting Emacs add the parameter `--dump-file' + ;; when invoking Emacs 27.1 executable on the command line, for instance: + ;; ./emacs --dump-file=$HOME/.emacs.d/.cache/dumps/spacemacs-27.1.pdmp + ;; (default (format "spacemacs-%s.pdmp" emacs-version)) + dotspacemacs-emacs-dumper-dump-file (format "spacemacs-%s.pdmp" emacs-version) + + ;; Maximum allowed time in seconds to contact an ELPA repository. + ;; (default 5) + dotspacemacs-elpa-timeout 5 + + ;; Set `gc-cons-threshold' and `gc-cons-percentage' when startup finishes. + ;; This is an advanced option and should not be changed unless you suspect + ;; performance issues due to garbage collection operations. + ;; (default '(100000000 0.1)) + dotspacemacs-gc-cons '(100000000 0.1) + + ;; Set `read-process-output-max' when startup finishes. + ;; This defines how much data is read from a foreign process. + ;; Setting this >= 1 MB should increase performance for lsp servers + ;; in emacs 27. + ;; (default (* 1024 1024)) + dotspacemacs-read-process-output-max (* 1024 1024) + + ;; If non-nil then Spacelpa repository is the primary source to install + ;; a locked version of packages. If nil then Spacemacs will install the + ;; latest version of packages from MELPA. Spacelpa is currently in + ;; experimental state please use only for testing purposes. + ;; (default nil) + dotspacemacs-use-spacelpa nil + + ;; If non-nil then verify the signature for downloaded Spacelpa archives. + ;; (default t) + dotspacemacs-verify-spacelpa-archives t + + ;; If non-nil then spacemacs will check for updates at startup + ;; when the current branch is not `develop'. Note that checking for + ;; new versions works via git commands, thus it calls GitHub services + ;; whenever you start Emacs. (default nil) + dotspacemacs-check-for-update nil + + ;; If non-nil, a form that evaluates to a package directory. For example, to + ;; use different package directories for different Emacs versions, set this + ;; to `emacs-version'. (default 'emacs-version) + dotspacemacs-elpa-subdirectory 'emacs-version + + ;; One of `vim', `emacs' or `hybrid'. + ;; `hybrid' is like `vim' except that `insert state' is replaced by the + ;; `hybrid state' with `emacs' key bindings. The value can also be a list + ;; with `:variables' keyword (similar to layers). Check the editing styles + ;; section of the documentation for details on available variables. + ;; (default 'vim) + dotspacemacs-editing-style 'vim + + ;; If non-nil show the version string in the Spacemacs buffer. It will + ;; appear as (spacemacs version)@(emacs version) + ;; (default t) + dotspacemacs-startup-buffer-show-version t + + ;; Specify the startup banner. Default value is `official', it displays + ;; the official spacemacs logo. An integer value is the index of text + ;; banner, `random' chooses a random text banner in `core/banners' + ;; directory. A string value must be a path to an image format supported + ;; by your Emacs build. + ;; If the value is nil then no banner is displayed. (default 'official) + dotspacemacs-startup-banner 'official + + ;; Scale factor controls the scaling (size) of the startup banner. Default + ;; value is `auto' for scaling the logo automatically to fit all buffer + ;; contents, to a maximum of the full image height and a minimum of 3 line + ;; heights. If set to a number (int or float) it is used as a constant + ;; scaling factor for the default logo size. + dotspacemacs-startup-banner-scale 'auto + + ;; List of items to show in startup buffer or an association list of + ;; the form `(list-type . list-size)`. If nil then it is disabled. + ;; Possible values for list-type are: + ;; `recents' `recents-by-project' `bookmarks' `projects' `agenda' `todos'. + ;; List sizes may be nil, in which case + ;; `spacemacs-buffer-startup-lists-length' takes effect. + ;; The exceptional case is `recents-by-project', where list-type must be a + ;; pair of numbers, e.g. `(recents-by-project . (7 . 5))', where the first + ;; number is the project limit and the second the limit on the recent files + ;; within a project. + dotspacemacs-startup-lists '((recents . 5) + (projects . 7)) + + ;; True if the home buffer should respond to resize events. (default t) + dotspacemacs-startup-buffer-responsive t + + ;; Show numbers before the startup list lines. (default t) + dotspacemacs-show-startup-list-numbers t + + ;; The minimum delay in seconds between number key presses. (default 0.4) + dotspacemacs-startup-buffer-multi-digit-delay 0.4 + + ;; If non-nil, show file icons for entries and headings on Spacemacs home buffer. + ;; This has no effect in terminal or if "all-the-icons" package or the font + ;; is not installed. (default nil) + dotspacemacs-startup-buffer-show-icons nil + + ;; Default major mode for a new empty buffer. Possible values are mode + ;; names such as `text-mode'; and `nil' to use Fundamental mode. + ;; (default `text-mode') + dotspacemacs-new-empty-buffer-major-mode 'text-mode + + ;; Default major mode of the scratch buffer (default `text-mode') + dotspacemacs-scratch-mode 'text-mode + + ;; If non-nil, *scratch* buffer will be persistent. Things you write down in + ;; *scratch* buffer will be saved and restored automatically. + dotspacemacs-scratch-buffer-persistent nil + + ;; If non-nil, `kill-buffer' on *scratch* buffer + ;; will bury it instead of killing. + dotspacemacs-scratch-buffer-unkillable nil + + ;; Initial message in the scratch buffer, such as "Welcome to Spacemacs!" + ;; (default nil) + dotspacemacs-initial-scratch-message nil + + ;; List of themes, the first of the list is loaded when spacemacs starts. + ;; Press `SPC T n' to cycle to the next theme in the list (works great + ;; with 2 themes variants, one dark and one light) + dotspacemacs-themes '(spacemacs-dark + spacemacs-light) + + ;; Set the theme for the Spaceline. Supported themes are `spacemacs', + ;; `all-the-icons', `custom', `doom', `vim-powerline' and `vanilla'. The + ;; first three are spaceline themes. `doom' is the doom-emacs mode-line. + ;; `vanilla' is default Emacs mode-line. `custom' is a user defined themes, + ;; refer to the DOCUMENTATION.org for more info on how to create your own + ;; spaceline theme. Value can be a symbol or list with additional properties. + ;; (default '(spacemacs :separator wave :separator-scale 1.5)) + dotspacemacs-mode-line-theme '(spacemacs :separator wave :separator-scale 1.5) + + ;; If non-nil the cursor color matches the state color in GUI Emacs. + ;; (default t) + dotspacemacs-colorize-cursor-according-to-state t + + ;; Default font or prioritized list of fonts. This setting has no effect when + ;; running Emacs in terminal. The font set here will be used for default and + ;; fixed-pitch faces. The `:size' can be specified as + ;; a non-negative integer (pixel size), or a floating-point (point size). + ;; Point size is recommended, because it's device independent. (default 10.0) + dotspacemacs-default-font '("Source Code Pro" + :size 10.0 + :weight normal + :width normal) + + ;; The leader key (default "SPC") + dotspacemacs-leader-key "SPC" + + ;; The key used for Emacs commands `M-x' (after pressing on the leader key). + ;; (default "SPC") + dotspacemacs-emacs-command-key "SPC" + + ;; The key used for Vim Ex commands (default ":") + dotspacemacs-ex-command-key ":" + + ;; The leader key accessible in `emacs state' and `insert state' + ;; (default "M-m") + dotspacemacs-emacs-leader-key "M-m" + + ;; Major mode leader key is a shortcut key which is the equivalent of + ;; pressing ` m`. Set it to `nil` to disable it. (default ",") + dotspacemacs-major-mode-leader-key "," + + ;; Major mode leader key accessible in `emacs state' and `insert state'. + ;; (default "C-M-m" for terminal mode, "" for GUI mode). + ;; Thus M-RET should work as leader key in both GUI and terminal modes. + ;; C-M-m also should work in terminal mode, but not in GUI mode. + dotspacemacs-major-mode-emacs-leader-key (if window-system "" "C-M-m") + + ;; These variables control whether separate commands are bound in the GUI to + ;; the key pairs `C-i', `TAB' and `C-m', `RET'. + ;; Setting it to a non-nil value, allows for separate commands under `C-i' + ;; and TAB or `C-m' and `RET'. + ;; In the terminal, these pairs are generally indistinguishable, so this only + ;; works in the GUI. (default nil) + dotspacemacs-distinguish-gui-tab nil + + ;; Name of the default layout (default "Default") + dotspacemacs-default-layout-name "Default" + + ;; If non-nil the default layout name is displayed in the mode-line. + ;; (default nil) + dotspacemacs-display-default-layout nil + + ;; If non-nil then the last auto saved layouts are resumed automatically upon + ;; start. (default nil) + dotspacemacs-auto-resume-layouts nil + + ;; If non-nil, auto-generate layout name when creating new layouts. Only has + ;; effect when using the "jump to layout by number" commands. (default nil) + dotspacemacs-auto-generate-layout-names nil + + ;; Size (in MB) above which spacemacs will prompt to open the large file + ;; literally to avoid performance issues. Opening a file literally means that + ;; no major mode or minor modes are active. (default is 1) + dotspacemacs-large-file-size 1 + + ;; Location where to auto-save files. Possible values are `original' to + ;; auto-save the file in-place, `cache' to auto-save the file to another + ;; file stored in the cache directory and `nil' to disable auto-saving. + ;; (default 'cache) + dotspacemacs-auto-save-file-location 'cache + + ;; Maximum number of rollback slots to keep in the cache. (default 5) + dotspacemacs-max-rollback-slots 5 + + ;; If non-nil, the paste transient-state is enabled. While enabled, after you + ;; paste something, pressing `C-j' and `C-k' several times cycles through the + ;; elements in the `kill-ring'. (default nil) + dotspacemacs-enable-paste-transient-state nil + + ;; Which-key delay in seconds. The which-key buffer is the popup listing + ;; the commands bound to the current keystroke sequence. (default 0.4) + dotspacemacs-which-key-delay 0.4 + + ;; Which-key frame position. Possible values are `right', `bottom' and + ;; `right-then-bottom'. right-then-bottom tries to display the frame to the + ;; right; if there is insufficient space it displays it at the bottom. + ;; It is also possible to use a posframe with the following cons cell + ;; `(posframe . position)' where position can be one of `center', + ;; `top-center', `bottom-center', `top-left-corner', `top-right-corner', + ;; `top-right-corner', `bottom-left-corner' or `bottom-right-corner' + ;; (default 'bottom) + dotspacemacs-which-key-position 'bottom + + ;; Control where `switch-to-buffer' displays the buffer. If nil, + ;; `switch-to-buffer' displays the buffer in the current window even if + ;; another same-purpose window is available. If non-nil, `switch-to-buffer' + ;; displays the buffer in a same-purpose window even if the buffer can be + ;; displayed in the current window. (default nil) + dotspacemacs-switch-to-buffer-prefers-purpose nil + + ;; Whether side windows (such as those created by treemacs or neotree) + ;; are kept or minimized by `spacemacs/toggle-maximize-window' (SPC w m). + ;; (default t) + dotspacemacs-maximize-window-keep-side-windows t + + ;; If non-nil a progress bar is displayed when spacemacs is loading. This + ;; may increase the boot time on some systems and emacs builds, set it to + ;; nil to boost the loading time. (default t) + dotspacemacs-loading-progress-bar t + + ;; If non-nil the frame is fullscreen when Emacs starts up. (default nil) + ;; (Emacs 24.4+ only) + dotspacemacs-fullscreen-at-startup nil + + ;; If non-nil `spacemacs/toggle-fullscreen' will not use native fullscreen. + ;; Use to disable fullscreen animations in OSX. (default nil) + dotspacemacs-fullscreen-use-non-native nil + + ;; If non-nil the frame is maximized when Emacs starts up. + ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil. + ;; (default t) (Emacs 24.4+ only) + dotspacemacs-maximized-at-startup t + + ;; If non-nil the frame is undecorated when Emacs starts up. Combine this + ;; variable with `dotspacemacs-maximized-at-startup' to obtain fullscreen + ;; without external boxes. Also disables the internal border. (default nil) + dotspacemacs-undecorated-at-startup nil + + ;; A value from the range (0..100), in increasing opacity, which describes + ;; the transparency level of a frame when it's active or selected. + ;; Transparency can be toggled through `toggle-transparency'. (default 90) + dotspacemacs-active-transparency 90 + + ;; A value from the range (0..100), in increasing opacity, which describes + ;; the transparency level of a frame when it's inactive or deselected. + ;; Transparency can be toggled through `toggle-transparency'. (default 90) + dotspacemacs-inactive-transparency 90 + + ;; A value from the range (0..100), in increasing opacity, which describes the + ;; transparency level of a frame background when it's active or selected. Transparency + ;; can be toggled through `toggle-background-transparency'. (default 90) + dotspacemacs-background-transparency 90 + + ;; If non-nil show the titles of transient states. (default t) + dotspacemacs-show-transient-state-title t + + ;; If non-nil show the color guide hint for transient state keys. (default t) + dotspacemacs-show-transient-state-color-guide t + + ;; If non-nil unicode symbols are displayed in the mode line. + ;; If you use Emacs as a daemon and wants unicode characters only in GUI set + ;; the value to quoted `display-graphic-p'. (default t) + dotspacemacs-mode-line-unicode-symbols t + + ;; If non-nil smooth scrolling (native-scrolling) is enabled. Smooth + ;; scrolling overrides the default behavior of Emacs which recenters point + ;; when it reaches the top or bottom of the screen. (default t) + dotspacemacs-smooth-scrolling t + + ;; Show the scroll bar while scrolling. The auto hide time can be configured + ;; by setting this variable to a number. (default t) + dotspacemacs-scroll-bar-while-scrolling t + + ;; Control line numbers activation. + ;; If set to `t', `relative' or `visual' then line numbers are enabled in all + ;; `prog-mode' and `text-mode' derivatives. If set to `relative', line + ;; numbers are relative. If set to `visual', line numbers are also relative, + ;; but only visual lines are counted. For example, folded lines will not be + ;; counted and wrapped lines are counted as multiple lines. + ;; This variable can also be set to a property list for finer control: + ;; '(:relative nil + ;; :visual nil + ;; :disabled-for-modes dired-mode + ;; doc-view-mode + ;; markdown-mode + ;; org-mode + ;; pdf-view-mode + ;; text-mode + ;; :size-limit-kb 1000) + ;; When used in a plist, `visual' takes precedence over `relative'. + ;; (default nil) + dotspacemacs-line-numbers nil + + ;; Code folding method. Possible values are `evil', `origami' and `vimish'. + ;; (default 'evil) + dotspacemacs-folding-method 'evil + + ;; If non-nil and `dotspacemacs-activate-smartparens-mode' is also non-nil, + ;; `smartparens-strict-mode' will be enabled in programming modes. + ;; (default nil) + dotspacemacs-smartparens-strict-mode nil + + ;; If non-nil smartparens-mode will be enabled in programming modes. + ;; (default t) + dotspacemacs-activate-smartparens-mode t + + ;; If non-nil pressing the closing parenthesis `)' key in insert mode passes + ;; over any automatically added closing parenthesis, bracket, quote, etc... + ;; This can be temporary disabled by pressing `C-q' before `)'. (default nil) + dotspacemacs-smart-closing-parenthesis nil + + ;; Select a scope to highlight delimiters. Possible values are `any', + ;; `current', `all' or `nil'. Default is `all' (highlight any scope and + ;; emphasis the current one). (default 'all) + dotspacemacs-highlight-delimiters 'all + + ;; If non-nil, start an Emacs server if one is not already running. + ;; (default nil) + dotspacemacs-enable-server nil + + ;; Set the emacs server socket location. + ;; If nil, uses whatever the Emacs default is, otherwise a directory path + ;; like \"~/.emacs.d/server\". It has no effect if + ;; `dotspacemacs-enable-server' is nil. + ;; (default nil) + dotspacemacs-server-socket-dir nil + + ;; If non-nil, advise quit functions to keep server open when quitting. + ;; (default nil) + dotspacemacs-persistent-server nil + + ;; List of search tool executable names. Spacemacs uses the first installed + ;; tool of the list. Supported tools are `rg', `ag', `pt', `ack' and `grep'. + ;; (default '("rg" "ag" "pt" "ack" "grep")) + dotspacemacs-search-tools '("rg" "ag" "pt" "ack" "grep") + + ;; The backend used for undo/redo functionality. Possible values are + ;; `undo-fu', `undo-redo' and `undo-tree' see also `evil-undo-system'. + ;; Note that saved undo history does not get transferred when changing + ;; your undo system. The default is currently `undo-fu' as `undo-tree' + ;; is not maintained anymore and `undo-redo' is very basic." + dotspacemacs-undo-system 'undo-fu + + ;; Format specification for setting the frame title. + ;; %a - the `abbreviated-file-name', or `buffer-name' + ;; %t - `projectile-project-name' + ;; %I - `invocation-name' + ;; %S - `system-name' + ;; %U - contents of $USER + ;; %b - buffer name + ;; %f - visited file name + ;; %F - frame name + ;; %s - process status + ;; %p - percent of buffer above top of window, or Top, Bot or All + ;; %P - percent of buffer above bottom of window, perhaps plus Top, or Bot or All + ;; %m - mode name + ;; %n - Narrow if appropriate + ;; %z - mnemonics of buffer, terminal, and keyboard coding systems + ;; %Z - like %z, but including the end-of-line format + ;; If nil then Spacemacs uses default `frame-title-format' to avoid + ;; performance issues, instead of calculating the frame title by + ;; `spacemacs/title-prepare' all the time. + ;; (default "%I@%S") + dotspacemacs-frame-title-format "%I@%S" + + ;; Format specification for setting the icon title format + ;; (default nil - same as frame-title-format) + dotspacemacs-icon-title-format nil + + ;; Color highlight trailing whitespace in all prog-mode and text-mode derived + ;; modes such as c++-mode, python-mode, emacs-lisp, html-mode, rst-mode etc. + ;; (default t) + dotspacemacs-show-trailing-whitespace t + + ;; Delete whitespace while saving buffer. Possible values are `all' + ;; to aggressively delete empty line and long sequences of whitespace, + ;; `trailing' to delete only the whitespace at end of lines, `changed' to + ;; delete only whitespace for changed lines or `nil' to disable cleanup. + ;; The variable `global-spacemacs-whitespace-cleanup-modes' controls + ;; which major modes have whitespace cleanup enabled or disabled + ;; by default. + ;; (default nil) + dotspacemacs-whitespace-cleanup nil + + ;; If non-nil activate `clean-aindent-mode' which tries to correct + ;; virtual indentation of simple modes. This can interfere with mode specific + ;; indent handling like has been reported for `go-mode'. + ;; If it does deactivate it here. + ;; (default t) + dotspacemacs-use-clean-aindent-mode t + + ;; Accept SPC as y for prompts if non-nil. (default nil) + dotspacemacs-use-SPC-as-y nil + + ;; If non-nil shift your number row to match the entered keyboard layout + ;; (only in insert state). Currently supported keyboard layouts are: + ;; `qwerty-us', `qwertz-de' and `querty-ca-fr'. + ;; New layouts can be added in `spacemacs-editing' layer. + ;; (default nil) + dotspacemacs-swap-number-row nil + + ;; Either nil or a number of seconds. If non-nil zone out after the specified + ;; number of seconds. (default nil) + dotspacemacs-zone-out-when-idle nil + + ;; Run `spacemacs/prettify-org-buffer' when + ;; visiting README.org files of Spacemacs. + ;; (default nil) + dotspacemacs-pretty-docs nil + + ;; If nil the home buffer shows the full path of agenda items + ;; and todos. If non-nil only the file name is shown. + dotspacemacs-home-shorten-agenda-source nil + + ;; If non-nil then byte-compile some of Spacemacs files. + dotspacemacs-byte-compile nil)) + +(defun dotspacemacs/user-env () + "Environment variables setup. +This function defines the environment variables for your Emacs session. By +default it calls `spacemacs/load-spacemacs-env' which loads the environment +variables declared in `~/.spacemacs.env' or `~/.spacemacs.d/.spacemacs.env'. +See the header of this file for more information." + (spacemacs/load-spacemacs-env) + ) + +(defun dotspacemacs/user-init () + "Initialization for user code: +This function is called immediately after `dotspacemacs/init', before layer +configuration. +It is mostly for variables that should be set before packages are loaded. +If you are unsure, try setting them in `dotspacemacs/user-config' first." + (setq-default dotspacemacs-themes '(nord)) + ) + + +(defun dotspacemacs/user-load () + "Library to load while dumping. +This function is called only while dumping Spacemacs configuration. You can +`require' or `load' the libraries of your choice that will be included in the +dump." + ) + + +(defun dotspacemacs/user-config () + "Configuration for user code: +This function is called at the very end of Spacemacs startup, after layer +configuration. +Put your configuration code here, except for variables that should be set +before packages are loaded." + (global-wakatime-mode) + (require 'netease-cloud-music-ui) + ) + + +;; Do not write anything past this comment. This is where Emacs will +;; auto-generate custom variable definitions. +(defun dotspacemacs/emacs-custom-settings () + "Emacs custom settings. +This is an auto-generated function, do not modify its content directly, use +Emacs customize menu instead. +This function is called at the very end of Spacemacs initialization." + (custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(package-selected-packages + '(nord-theme netease-cloud-music wakatime-mode ws-butler writeroom-mode winum which-key vundo volatile-highlights vim-powerline vi-tilde-fringe uuidgen undo-fu-session undo-fu treemacs-projectile treemacs-persp treemacs-icons-dired treemacs-evil toc-org term-cursor symon symbol-overlay string-inflection string-edit-at-point spacemacs-whitespace-cleanup spacemacs-purpose-popwin spaceline space-doc restart-emacs request rainbow-delimiters quickrun popwin pcre2el password-generator paradox overseer org-superstar open-junk-file nameless multi-line macrostep lorem-ipsum link-hint inspector info+ indent-guide hybrid-mode hungry-delete holy-mode hl-todo highlight-parentheses highlight-numbers highlight-indentation hide-comnt helm-xref helm-themes helm-swoop helm-purpose helm-projectile helm-org helm-mode-manager helm-make helm-descbinds helm-comint helm-ag google-translate golden-ratio flycheck-package flycheck-elsa flx-ido fancy-battery eyebrowse expand-region evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-textobj-line evil-surround evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state evil-lion evil-indent-plus evil-iedit-state evil-goggles evil-exchange evil-evilified-state evil-escape evil-easymotion evil-collection evil-cleverparens evil-args evil-anzu eval-sexp-fu emr elisp-slime-nav elisp-demos elisp-def editorconfig dumb-jump drag-stuff dotenv-mode disable-mouse dired-quick-sort diminish devdocs define-word column-enforce-mode clean-aindent-mode centered-cursor-mode auto-highlight-symbol auto-compile all-the-icons aggressive-indent ace-link ace-jump-helm-line))) + (custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) + ) diff --git a/home/private_dot_config/environment.d/envvars.conf b/home/private_dot_config/environment.d/envvars.conf new file mode 100644 index 0000000..1e1dc7c --- /dev/null +++ b/home/private_dot_config/environment.d/envvars.conf @@ -0,0 +1,12 @@ +#QT_STYLE_OVERRIDE=kvantum +MOZ_ENABLE_WAYLAND=1 +QT_QPA_PLATFORM=wayland;xcb +#XCURSOR_THEME=Bibata-Modern-Ice +#XCURSOR_SIZE=24 +SDL_VIDEODRIVER=wayland +GDK_BACKEND=wayland,x11,* +QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor +SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket +# make gtk render in opengl to fix error 71 +# so gnome f**k you +GSK_RENDERER=gl diff --git a/home/private_dot_config/environment.d/xdg.conf b/home/private_dot_config/environment.d/xdg.conf index 3e9d1fa..81a6281 100644 --- a/home/private_dot_config/environment.d/xdg.conf +++ b/home/private_dot_config/environment.d/xdg.conf @@ -14,12 +14,20 @@ CARGO_HOME="$XDG_DATA_HOME"/cargo CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv # gradle GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle +# gtk-2.0 +GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc +# gnupg +GNUPGHOME="$XDG_DATA_HOME"/gnupg # java _JAVA_OPTIONS="-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java -Djavafx.cachedir=${XDG_CACHE_HOME}/openjfx" +# npm +NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc # platformio PLATFORMIO_CORE_DIR="$XDG_DATA_HOME"/platformio # python (before v3.13.0,still beta) PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/pythonrc +# spacemacs +SPACEMACSDIR="$XDG_CONFIG_HOME"/emacs/spacemacs # teamspeak TS3_CONFIG_DIR=$XDG_CONFIG_HOME/ts3client # wakatime diff --git a/home/private_dot_config/kitty/themes.conf b/home/private_dot_config/kitty/themes.conf index 55b3906..b4f80c1 100644 --- a/home/private_dot_config/kitty/themes.conf +++ b/home/private_dot_config/kitty/themes.conf @@ -1,7 +1,7 @@ # vim:fileencoding=utf-8:foldmethod=marker # BEGIN_KITTY_THEME -# Nord +# Nord-Dark include current-theme.conf # END_KITTY_THEME diff --git a/home/private_dot_config/kitty/themes/nord-dark.conf b/home/private_dot_config/kitty/themes/nord-dark.conf new file mode 100644 index 0000000..54f3a96 --- /dev/null +++ b/home/private_dot_config/kitty/themes/nord-dark.conf @@ -0,0 +1,43 @@ +# Nord Colorscheme for Kitty +# Based on: +# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192 +# - https://github.com/arcticicestudio/nord-hyper + +foreground #D8DEE9 +background #2E3440 +selection_foreground #000000 +selection_background #FFFACD +url_color #0087BD +cursor #81A1C1 + +# black +color0 #3B4252 +color8 #4C566A + +# red +color1 #BF616A +color9 #BF616A + +# green +color2 #A3BE8C +color10 #A3BE8C + +# yellow +color3 #EBCB8B +color11 #EBCB8B + +# blue +color4 #81A1C1 +color12 #81A1C1 + +# magenta +color5 #B48EAD +color13 #B48EAD + +# cyan +color6 #88C0D0 +color14 #8FBCBB + +# white +color7 #E5E9F0 +color15 #ECEFF4 diff --git a/home/private_dot_config/kitty/themes/nord-light.conf b/home/private_dot_config/kitty/themes/nord-light.conf new file mode 100644 index 0000000..85c1cbd --- /dev/null +++ b/home/private_dot_config/kitty/themes/nord-light.conf @@ -0,0 +1,42 @@ + +# Nord Light Colorscheme for Kitty +# Converted from Nord Dark theme + +foreground #2E3440 +background #ECEFF4 +selection_foreground #FFFFFF +selection_background #4C566A +url_color #005F87 +cursor #2E3440 + +# black +color0 #D8DEE9 +color8 #E5E9F0 + +# red +color1 #BF616A +color9 #D08770 + +# green +color2 #A3BE8C +color10 #B5D99C + +# yellow +color3 #EBCB8B +color11 #F3E8B8 + +# blue +color4 #81A1C1 +color12 #88C0D0 + +# magenta +color5 #B48EAD +color13 #D4A5C5 + +# cyan +color6 #8FBCBB +color14 #A3D6D5 + +# white +color7 #4C566A +color15 #2E3440 diff --git a/home/private_dot_config/nvim/lua/custom/README.md b/home/private_dot_config/nvim/lua/custom/README.md new file mode 100644 index 0000000..a6ef0d1 --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/README.md @@ -0,0 +1,3 @@ +# Example_config + +This can be used as an example custom config for NvChad, this branch is a minimal one. Do check the feature_full branch if you need all the ease in your config. diff --git a/home/private_dot_config/nvim/lua/custom/chadrc.lua b/home/private_dot_config/nvim/lua/custom/chadrc.lua new file mode 100644 index 0000000..8989328 --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/chadrc.lua @@ -0,0 +1,39 @@ +---@type ChadrcConfig +local M = {} + +-- Path to overriding theme and highlights files +local highlights = require "custom.highlights" + +local is_darkmode = vim.system({"darkman","get"}, { text = true }, on_exit) + if is_darkmode == "dark" then + local c_theme = "nord" + else + local c_theme = "onenord_light" + end + +M.ui = { + theme = c_theme, + theme_toggle = { "nord", "onenord_light" }, + + hl_override = highlights.override, + hl_add = highlights.add, + + nvdash = { + load_on_startup = true, + -- generated with https://patorjk.com/software/taag/# + header = { + "▗▖ ▗▖▗▄▄▄▖ ▗▄▖ ▗▖ ▗▖▗▄▄▄▖▗▖ ▗▖", + "▐▛▚▖▐▌▐▌ ▐▌ ▐▌▐▌ ▐▌ █ ▐▛▚▞▜▌", + "▐▌ ▝▜▌▐▛▀▀▘▐▌ ▐▌▐▌ ▐▌ █ ▐▌ ▐▌", + "▐▌ ▐▌▐▙▄▄▖▝▚▄▞▘ ▝▚▞▘ ▗▄█▄▖▐▌ ▐▌", + " ", + } + } +} + +M.plugins = "custom.plugins" + +-- check core.mappings for table structure +M.mappings = require "custom.mappings" + +return M diff --git a/home/private_dot_config/nvim/lua/custom/configs/lspconfig.lua b/home/private_dot_config/nvim/lua/custom/configs/lspconfig.lua new file mode 100644 index 0000000..d6f7f2b --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/configs/lspconfig.lua @@ -0,0 +1,17 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach +local capabilities = require("plugins.configs.lspconfig").capabilities + +local lspconfig = require "lspconfig" + +-- if you just want default config for the servers then put them in a table +local servers = { "html", "cssls", "tsserver", "clangd" } + +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + on_attach = on_attach, + capabilities = capabilities, + } +end + +-- +-- lspconfig.pyright.setup { blabla} diff --git a/home/private_dot_config/nvim/lua/custom/configs/null-ls.lua b/home/private_dot_config/nvim/lua/custom/configs/null-ls.lua new file mode 100644 index 0000000..99cdbf1 --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/configs/null-ls.lua @@ -0,0 +1,21 @@ +local null_ls = require "null-ls" + +local b = null_ls.builtins + +local sources = { + + -- webdev stuff + b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast! + b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes + + -- Lua + b.formatting.stylua, + + -- cpp + b.formatting.clang_format, +} + +null_ls.setup { + debug = true, + sources = sources, +} diff --git a/home/private_dot_config/nvim/lua/custom/configs/overrides.lua b/home/private_dot_config/nvim/lua/custom/configs/overrides.lua new file mode 100644 index 0000000..8eeb9b2 --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/configs/overrides.lua @@ -0,0 +1,62 @@ +local M = {} + +M.treesitter = { + ensure_installed = { + "vim", + "lua", + "html", + "css", + "javascript", + "typescript", + "tsx", + "c", + "markdown", + "markdown_inline", + }, + indent = { + enable = true, + -- disable = { + -- "python" + -- }, + }, +} + +M.mason = { + ensure_installed = { + -- lua stuff + "lua-language-server", + "stylua", + + -- web dev stuff + "css-lsp", + "html-lsp", + "typescript-language-server", + "deno", + "prettier", + + -- c/cpp stuff + "clangd", + "clang-format", + + -- python + "python-lsp-server" + }, +} + +-- git support in nvimtree +M.nvimtree = { + git = { + enable = true, + }, + + renderer = { + highlight_git = true, + icons = { + show = { + git = true, + }, + }, + }, +} + +return M diff --git a/home/private_dot_config/nvim/lua/custom/highlights.lua b/home/private_dot_config/nvim/lua/custom/highlights.lua new file mode 100644 index 0000000..ebf2dfb --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/highlights.lua @@ -0,0 +1,19 @@ +-- To find any highlight groups: " Telescope highlights" +-- Each highlight group can take a table with variables fg, bg, bold, italic, etc +-- base30 variable names can also be used as colors + +local M = {} + +---@type Base46HLGroupsList +M.override = { + Comment = { + italic = true, + }, +} + +---@type HLTable +M.add = { + NvimTreeOpenedFolderName = { fg = "green", bold = true }, +} + +return M diff --git a/home/private_dot_config/nvim/lua/custom/init.lua b/home/private_dot_config/nvim/lua/custom/init.lua new file mode 100644 index 0000000..608a8d9 --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/init.lua @@ -0,0 +1,7 @@ +-- local autocmd = vim.api.nvim_create_autocmd + +-- Auto resize panes when resizing nvim window +-- autocmd("VimResized", { +-- pattern = "*", +-- command = "tabdo wincmd =", +-- }) diff --git a/home/private_dot_config/nvim/lua/custom/mappings.lua b/home/private_dot_config/nvim/lua/custom/mappings.lua new file mode 100644 index 0000000..9ce068a --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/mappings.lua @@ -0,0 +1,12 @@ +---@type MappingsTable +local M = {} + +M.general = { + n = { + [";"] = { ":", "enter command mode", opts = { nowait = true } }, + }, +} + +-- more keybinds! + +return M diff --git a/home/private_dot_config/nvim/lua/custom/plugins.lua b/home/private_dot_config/nvim/lua/custom/plugins.lua new file mode 100644 index 0000000..806fd7e --- /dev/null +++ b/home/private_dot_config/nvim/lua/custom/plugins.lua @@ -0,0 +1,76 @@ +local overrides = require("custom.configs.overrides") + +---@type NvPluginSpec[] +local plugins = { + + -- Override plugin definition options + + { + "neovim/nvim-lspconfig", + dependencies = { + -- format & linting + { + "jose-elias-alvarez/null-ls.nvim", + config = function() + require "custom.configs.null-ls" + end, + }, + }, + config = function() + require "plugins.configs.lspconfig" + require "custom.configs.lspconfig" + end, -- Override to setup mason-lspconfig + }, + + -- override plugin configs + { + "williamboman/mason.nvim", + opts = overrides.mason, + }, + + { + "nvim-treesitter/nvim-treesitter", + opts = overrides.treesitter, + }, + + { + "nvim-tree/nvim-tree.lua", + opts = overrides.nvimtree, + }, + + -- Install a plugin + { + "max397574/better-escape.nvim", + event = "InsertEnter", + config = function() + require("better_escape").setup() + end, + }, + + { + "zbirenbaum/copilot.lua", + cmd = "Copilot", + event = "InsertEnter", + config = function() + require("copilot").setup({}) + end, + }, + + { 'wakatime/vim-wakatime', lazy = false } + + -- To make a plugin not be loaded + -- { + -- "NvChad/nvim-colorizer.lua", + -- enabled = false + -- }, + + -- All NvChad plugins are lazy-loaded by default + -- For a plugin to be loaded, you will need to set either `ft`, `cmd`, `keys`, `event`, or set `lazy = false` + -- If you want a plugin to load on startup, add `lazy = false` to a plugin spec, for example + -- { + -- "mg979/vim-visual-multi", + -- lazy = false, + -- } +} + +return plugins diff --git a/home/private_dot_config/private_fish/config.fish b/home/private_dot_config/private_fish/config.fish index 206e53e..9f75561 100644 --- a/home/private_dot_config/private_fish/config.fish +++ b/home/private_dot_config/private_fish/config.fish @@ -1,5 +1,12 @@ if status is-interactive # Commands to run in interactive sessions can go here + + # set theme + if string match -q -- light (darkman get) + yes | fish_config theme save "ayu Light" + else + yes | fish_config theme save "Nord" + end end # zellij init for alacritty @@ -16,6 +23,7 @@ starship init fish | source # greeting function fish_greeting echo "" +# custom motd by fastfetch if [ $TERM = xterm-kitty ] fastfetch -c $__fish_config_dir/fmotd/motd.jsonc else @@ -25,6 +33,7 @@ function fish_greeting #cat $__fish_config_dir/motd end # greeting end + # pnpm set -gx PNPM_HOME "/home/grassblock/.local/share/pnpm" if not string match -q -- $PNPM_HOME $PATH @@ -32,6 +41,9 @@ if not string match -q -- $PNPM_HOME $PATH end # pnpm end +# nvm managed npm +set -gx PATH "/home/grassblock/.local/share/npm/bin" $PATH + # ssh-agent #set SSH_ENV_FILE "$HOME/.ssh/agent-environment" #set SSH_TIMEOUT 86400 # 24 hours in seconds @@ -52,7 +64,10 @@ end # ssh_start_agent #end ## ssh-agent-end -rvm default + +# ssh agent with rbw +set -gx SSH_ASKPASS_REQUIRE prefer +set -gx SSH_ASKPASS "$HOME/.local/bin/bw-askpass" # Created by `pipx` on 2023-10-13 01:41:55 set PATH $PATH /home/grassblock/.local/bin @@ -64,3 +79,18 @@ set -gx MAMBA_EXE "/usr/bin/micromamba" set -gx MAMBA_ROOT_PREFIX "/home/grassblock/.local/share/micromamba" $MAMBA_EXE shell hook --shell fish --root-prefix $MAMBA_ROOT_PREFIX | source # <<< mamba initialize <<< +# micromamba has outdated dependency,,,, + +# asdf +set -gx ASDF_CONFIG_FILE $XDG_CONFIG_HOME/asdf/asdfrc +set -gx ASDF_DATA_DIR $XDG_DATA_HOME/asdf +source /opt/asdf-vm/asdf.fish +# asdf end + +# alias +alias wget "wget --hsts-file="$XDG_DATA_HOME/wget-hsts"" +alias "yarn" "yarn $1 --use-yarnrc $XDG_CONFIG_HOME/yarn/config" +alias "ssh" "kitten ssh" +alias "nya" "echo nya && meow" +alias bat="bat --theme=\$( test $(darkman get) = 'dark' && echo Nord || echo ansi)" +# alias end diff --git a/home/private_dot_config/private_fish/themes/Nord Light.theme b/home/private_dot_config/private_fish/themes/Nord Light.theme new file mode 100644 index 0000000..3537e7f --- /dev/null +++ b/home/private_dot_config/private_fish/themes/Nord Light.theme @@ -0,0 +1,37 @@ +# name: Nord Light +# license: 'MIT' +# preferred_background: #d8dee9 +# url: https://www.nordtheme.com +# tweaked from official Nord (WIP) + +fish_color_normal normal +fish_color_command 5e81ac +fish_color_keyword 3b4252 +fish_color_quote 2e3440 +fish_color_redirection b48ead --bold +fish_color_end 3b4252 +fish_color_error bf616a +fish_color_param 4c566a +fish_color_valid_path --underline +fish_color_option 81a1c1 +fish_color_comment 4c566a --italics +fish_color_selection 4c566a --bold --background=d8dee9 +fish_color_operator 81a1c1 +fish_color_escape ebcb8b +fish_color_autosuggestion 3b4252 +fish_color_cwd 5e81ac +fish_color_cwd_root bf616a +fish_color_user 81a1c1 +fish_color_host 81a1c1 +fish_color_host_remote ebcb8b +fish_color_status bf616a +fish_color_cancel --reverse +fish_color_match --background=d08770 +fish_color_search_match --bold --background=d8dee9 +fish_color_history_current 3b4252 --bold + +fish_pager_color_progress ffffff --background=d08770 +fish_pager_color_completion 3b4252 +fish_pager_color_prefix normal --bold --underline +fish_pager_color_description ebcb8b --italics +fish_pager_color_selected_background --background=d8dee9 diff --git a/home/private_dot_local/private_share/dark-mode.d/executable_desktop-notification.sh b/home/private_dot_local/private_share/dark-mode.d/executable_desktop-notification.sh new file mode 100644 index 0000000..e29e357 --- /dev/null +++ b/home/private_dot_local/private_share/dark-mode.d/executable_desktop-notification.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# trigger a small, passive popup dialog to inform the user about darkman's activity +# reference https://wiki.archlinux.org/title/Desktop_notifications#Usage_in_programming + +notify-send --app-name="darkman" --urgency=low --icon=weather-clear-night "switching to dark mode" \ No newline at end of file diff --git a/home/private_dot_local/private_share/dark-mode.d/executable_global-theme.sh b/home/private_dot_local/private_share/dark-mode.d/executable_global-theme.sh new file mode 100644 index 0000000..5a01aa6 --- /dev/null +++ b/home/private_dot_local/private_share/dark-mode.d/executable_global-theme.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +# Change the global Plasma Theme. On Manjaro you can use "org.manjaro.breath-dark.desktop" +# or you can create your own global Plasma Theme with the "Plasma Look And Feel Explorer". +# Reference: https://userbase.kde.org/Plasma/Create_a_Global_Theme_Package +# +# Since Plasma 5.26 the lookandfeeltool does not work anymore without "faking" the screen. +# Reference: https://bugs.kde.org/show_bug.cgi?id=460643 + +# Global Theme +lookandfeeltool -platform offscreen --apply "Utterly-Nord" + +# Window decoration +# https://askubuntu.com/questions/1183294/switching-plasma-theme-from-the-command-line +kwriteconfig6 --file ~/.config/kwinrc --group org.kde.kdecoration2 --key library org.kde.klassy + +kwriteconfig6 --file ~/.config/kwinrc --group org.kde.kdecoration2 --key theme Klassy + +# Icon theme +/usr/lib/plasma-changeicons Papirus-Dark + +# gtk4 theme +flatpak run --command="gradience-cli" com.github.GradienceTeam.Gradience apply -n "Nord-bluish" --gtk gtk4 + +# application style +# https://reddit.com/r/kde/comments/f7wemr/how_change_application_style_without_system/ +kwriteconfig6 --file kdeglobals --group KDE --key widgetStyle Lightly + +# cursorTheme +# https://askubuntu.com/questions/1025338/how-can-i-set-the-cursor-theme-on-kde-plasma-5-programmatically +kwriteconfig6 --file ~/.config/kcminputrc --group Mouse --key cursorTheme Bibata-Modern-Ice + +# notify +notify-send --app-name="darkman" --urgency=low --icon=weather-clear "theme switch success. to make them fully take effect, please logout and login again." diff --git a/home/private_dot_local/private_share/dark-mode.d/executable_kde-gtk-theme.sh b/home/private_dot_local/private_share/dark-mode.d/executable_kde-gtk-theme.sh new file mode 100644 index 0000000..49132ee --- /dev/null +++ b/home/private_dot_local/private_share/dark-mode.d/executable_kde-gtk-theme.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# GTK apps are not affected by the Plasma Global Theme, which only applies to Qt based programs. +# GTK themes can be installed here: Global Theme > Application Style > Configure GNOME/GTK Application Style. +# Reference: https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications + +dbus-send --session --dest=org.kde.GtkConfig --type=method_call /GtkConfig org.kde.GtkConfig.setGtkTheme "string:Nordic-bluish-dark" diff --git a/home/private_dot_local/private_share/dark-mode.d/executable_kitty.sh b/home/private_dot_local/private_share/dark-mode.d/executable_kitty.sh new file mode 100644 index 0000000..219901b --- /dev/null +++ b/home/private_dot_local/private_share/dark-mode.d/executable_kitty.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +kitten themes --config-file-name=themes.conf --reload-in=all "nord-dark" diff --git a/home/private_dot_local/private_share/light-mode.d/executable_desktop-notification.sh b/home/private_dot_local/private_share/light-mode.d/executable_desktop-notification.sh new file mode 100644 index 0000000..160edde --- /dev/null +++ b/home/private_dot_local/private_share/light-mode.d/executable_desktop-notification.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# trigger a small, passive popup dialog to inform the user about darkman's activity +# reference https://wiki.archlinux.org/title/Desktop_notifications#Usage_in_programming + +notify-send --app-name="darkman" --urgency=low --icon=weather-clear "switching to light mode" \ No newline at end of file diff --git a/home/private_dot_local/private_share/light-mode.d/executable_global-theme.sh b/home/private_dot_local/private_share/light-mode.d/executable_global-theme.sh new file mode 100644 index 0000000..4f0afd7 --- /dev/null +++ b/home/private_dot_local/private_share/light-mode.d/executable_global-theme.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# Change the global Plasma Theme. On Manjaro you can use "org.manjaro.breath-light.desktop" +# or you can create your own global Plasma Theme with the "Plasma Look And Feel Explorer". +# Reference: https://userbase.kde.org/Plasma/Create_a_Global_Theme_Package +# +# Since Plasma 5.26 the lookandfeeltool does not work anymore without "faking" the screen. +# Reference: https://bugs.kde.org/show_bug.cgi?id=460643 + +# Global Theme +lookandfeeltool -platform offscreen --apply "Utterly-Nord-Light" + +# Window decoration +# https://askubuntu.com/questions/1183294/switching-plasma-theme-from-the-command-line +kwriteconfig6 --file ~/.config/kwinrc --group org.kde.kdecoration2 --key library org.kde.klassy + +kwriteconfig6 --file ~/.config/kwinrc --group org.kde.kdecoration2 --key theme Klassy + +# Icon theme +/usr/lib/plasma-changeicons Papirus-Light + +# gtk4 theme +flatpak run --command="gradience-cli" com.github.GradienceTeam.Gradience apply -n "Nord Semi-Light" --gtk gtk4 + +# application style +kwriteconfig6 --file kdeglobals --group KDE --key widgetStyle Lightly + +# notify +notify-send --app-name="darkman" --urgency=low --icon=weather-clear "theme switch success. to make them fully take effect, please logout and login again." diff --git a/home/private_dot_local/private_share/light-mode.d/executable_kde-gtk-theme.sh b/home/private_dot_local/private_share/light-mode.d/executable_kde-gtk-theme.sh new file mode 100644 index 0000000..4769819 --- /dev/null +++ b/home/private_dot_local/private_share/light-mode.d/executable_kde-gtk-theme.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# GTK apps are not affected by the Plasma Global Theme, which only applies to Qt based programs. +# GTK themes can be installed here: Global Theme > Application Style > Configure GNOME/GTK Application Style. +# Reference: https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications + +dbus-send --session --dest=org.kde.GtkConfig --type=method_call /GtkConfig org.kde.GtkConfig.setGtkTheme "string:Graphite-Light-nord" diff --git a/home/private_dot_local/private_share/light-mode.d/executable_kitty.sh b/home/private_dot_local/private_share/light-mode.d/executable_kitty.sh new file mode 100644 index 0000000..f4f4910 --- /dev/null +++ b/home/private_dot_local/private_share/light-mode.d/executable_kitty.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +kitten themes --config-file-name=themes.conf "nord-light"