From 0e7f99ef0f834458c29bb7b0175af35fa81a6c3f Mon Sep 17 00:00:00 2001 From: Clay Gomera Date: Mon, 25 Mar 2024 17:10:01 -0400 Subject: [PATCH] Updated --- user/.config/doom/config.el | 4 +- user/.config/doom/config.org | 156 +++++++++++++++++++------ user/.config/fish/config.fish | 11 +- user/.config/fuzzel/fuzzel.ini | 5 +- user/.config/fuzzel/scripts/fuzz_power | 2 +- user/.config/fuzzel/scripts/fuzz_wall | 18 --- user/.config/gtk-2.0/gtkrc-2.0 | 2 +- user/.config/gtk-3.0/settings.ini | 2 +- user/.config/hypr/hypridle.conf | 6 +- user/.config/hypr/hyprland.conf | 14 ++- user/.config/hypr/hyprlock.conf | 73 ++++++++++++ user/.config/hypr/hyprpaper.conf | 4 + user/.config/hypr/keybindings.conf | 14 +-- user/.config/hypr/rules.conf | 10 +- user/.config/hypr/scripts/lock | 5 - user/.config/hypr/theme.conf | 5 +- user/.config/hypr/wall/lock.png | Bin 0 -> 21648 bytes user/.config/hypr/wall/wall.png | Bin 0 -> 21648 bytes user/.config/mako/config | 2 +- user/.config/newsboat/config | 2 +- user/.config/newsboat/urls | 57 ++++----- user/.config/user-dirs.dirs | 16 +-- user/.config/waybar/config | 20 ++-- user/.config/waybar/style.css | 8 +- 24 files changed, 295 insertions(+), 141 deletions(-) delete mode 100755 user/.config/fuzzel/scripts/fuzz_wall create mode 100644 user/.config/hypr/hyprlock.conf create mode 100644 user/.config/hypr/hyprpaper.conf delete mode 100755 user/.config/hypr/scripts/lock create mode 100755 user/.config/hypr/wall/lock.png create mode 100755 user/.config/hypr/wall/wall.png diff --git a/user/.config/doom/config.el b/user/.config/doom/config.el index ee6538945..b37416dd5 100644 --- a/user/.config/doom/config.el +++ b/user/.config/doom/config.el @@ -299,5 +299,5 @@ :desc "Zap to char" "z" #'zap-to-char :desc "Zap up to char" "Z" #'zap-up-to-char) -(set-frame-parameter nil 'alpha-background 90) ; For current frame -(add-to-list 'default-frame-alist '(alpha-background . 90)) ; For all new frames henceforth +(set-frame-parameter nil 'alpha-background 85) ; For current frame +(add-to-list 'default-frame-alist '(alpha-background . 85)) ; For all new frames henceforth diff --git a/user/.config/doom/config.org b/user/.config/doom/config.org index 2f4b9dc79..06bef2099 100644 --- a/user/.config/doom/config.org +++ b/user/.config/doom/config.org @@ -41,10 +41,18 @@ - [[#transparent][TRANSPARENT]] * ABOUT THIS CONFIG -This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs that uses the "evil" keybindings (Vim keybindings) and includes a number of nice extensions and a bit of configuration out of the box. I am maintaining this config not just for myself, but also for those that want to explore some of what is possible with Emacs. I will add a lot of examples of plugins and settings, some of them I may not even use personally. I do this because many people following me on YouTube look at my configs as "documentation". This config is based on DistroTube's config. +This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs +that uses the "evil" keybindings (Vim keybindings) and includes a number of nice +extensions and a bit of configuration out of the box. I am maintaining this +config not just for myself, but also for those that want to explore some of what +is possible with Emacs. I will add a lot of examples of plugins and settings, +some of them I may not even use personally. I do this because many people +following me on YouTube look at my configs as "documentation". This config is +based on DistroTube's config. * BEACON -Never lose your cursor. When you scroll, your cursor will shine! This is a global minor-mode. Turn it on everywhere with: +Never lose your cursor. When you scroll, your cursor will shine! This is a +global minor-mode. Turn it on everywhere with: #+begin_src emacs-lisp (beacon-mode 1) @@ -54,7 +62,10 @@ Never lose your cursor. When you scroll, your cursor will shine! This is a glo Doom Emacs uses 'SPC b' for keybindings related to bookmarks and buffers. ** Bookmarks -Bookmarks are somewhat like registers in that they record positions you can jump to. Unlike registers, they have long names, and they persist automatically from one Emacs session to the next. The prototypical use of bookmarks is to record where you were reading in various files. +Bookmarks are somewhat like registers in that they record positions you can jump +to. Unlike registers, they have long names, and they persist automatically from +one Emacs session to the next. The prototypical use of bookmarks is to record +where you were reading in various files. #+BEGIN_SRC emacs-lisp (map! :leader @@ -64,7 +75,11 @@ Bookmarks are somewhat like registers in that they record positions you can jump #+END_SRC ** Buffers -Regarding /buffers/, the text you are editing in Emacs resides in an object called a /buffer/. Each time you visit a file, a buffer is used to hold the file’s text. Each time you invoke Dired, a buffer is used to hold the directory listing. /Ibuffer/ is a program that lists all of your Emacs /buffers/, allowing you to navigate between them and filter them. +Regarding /buffers/, the text you are editing in Emacs resides in an object called +a /buffer/. Each time you visit a file, a buffer is used to hold the file’s text. +Each time you invoke Dired, a buffer is used to hold the directory listing. +/Ibuffer/ is a program that lists all of your Emacs /buffers/, allowing you to +navigate between them and filter them. | COMMAND | DESCRIPTION | KEYBINDING | |-----------------+----------------------+------------| @@ -75,7 +90,11 @@ Regarding /buffers/, the text you are editing in Emacs resides in an object call | save-buffer | Save current buffer | SPC b s | ** Global Auto Revert -A buffer can get out of sync with respect to its visited file on disk if that file is changed by another program. To keep it up to date, you can enable Auto Revert mode by typing M-x auto-revert-mode, or you can set it to be turned on globally with 'global-auto-revert-mode'. I have also turned on Global Auto Revert on non-file buffers, which is especially useful for 'dired' buffers. +A buffer can get out of sync with respect to its visited file on disk if that +file is changed by another program. To keep it up to date, you can enable Auto +Revert mode by typing M-x auto-revert-mode, or you can set it to be turned on +globally with 'global-auto-revert-mode'. I have also turned on Global Auto +Revert on non-file buffers, which is especially useful for 'dired' buffers. #+begin_src emacs-lisp (global-auto-revert-mode 1) @@ -110,10 +129,8 @@ A buffer can get out of sync with respect to its visited file on disk if that fi #+end_src * CALENDAR -Let's make a 12-month calendar available so we can have a calendar app that, when we click on time/date in xmobar, we get a nice 12-month calendar to view. - -This is a modification of: http://homepage3.nifty.com/oatu/emacs/calendar.html -See also: https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months +Let's make a 12-month calendar available so we can have a calendar app that, +when we click on time/date in xmobar, we get a nice 12-month calendar to view. #+begin_src emacs-lisp ;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months @@ -177,7 +194,13 @@ See also: https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-t #+end_src * CLIPPY -Gives us a popup box with "Clippy, the paper clip". You can make him say various things by calling 'clippy-say' function. But the more useful functions of clippy are the two describe functions provided: 'clippy-describe-function' and 'clippy-describe-variable'. Hit the appropriate keybinding while the point is over a function/variable to call it. A popup with helpful clippy will appear, telling you about the function/variable (using describe-function and describe-variable respectively). +Gives us a popup box with "Clippy, the paper clip". You can make him say various +things by calling 'clippy-say' function. But the more useful functions of +clippy are the two describe functions provided: 'clippy-describe-function' and +'clippy-describe-variable'. Hit the appropriate keybinding while the point is +over a function/variable to call it. A popup with helpful clippy will appear, +telling you about the function/variable (using describe-function and +describe-variable respectively). | COMMAND | DESCRIPTION | KEYBINDING | |--------------------------+---------------------------------------+------------| @@ -205,7 +228,8 @@ Dired is the file manager within Emacs. #+end_src ** Keybindings Within Dired With Peep-Dired-Mode Enabled -If peep-dired is enabled, you will get image previews as you go up/down with 'j' and 'k' +If peep-dired is enabled, you will get image previews as you go up/down with 'j' +and 'k' | COMMAND | DESCRIPTION | KEYBINDING | |----------------------+------------------------------------------+------------| @@ -227,7 +251,8 @@ If peep-dired is enabled, you will get image previews as you go up/down with 'j' #+end_src * DOOM THEME -Setting the theme to doom-one. To try out new themes, I set a keybinding for counsel-load-theme with 'SPC h t'. +Setting the theme to doom-one. To try out new themes, I set a keybinding for +counsel-load-theme with 'SPC h t'. #+BEGIN_SRC emacs-lisp (setq doom-theme 'doom-gruvbox) @@ -239,7 +264,8 @@ Setting the theme to doom-one. To try out new themes, I set a keybinding for co : counsel-load-theme * EMOJIS -Emojify is an Emacs extension to display emojis. It can display github style emojis like :smile: or plain ascii ones like :). +Emojify is an Emacs extension to display emojis. It can display github style +emojis like :smile: or plain ascii ones like :). #+begin_src emacs-lisp (use-package emojify @@ -267,7 +293,13 @@ Settings related to fonts within Doom Emacs: #+END_SRC * INSERT DATE -Some custom functions to insert the date. The function 'insert-todays-date' can be used one of three different ways: (1) just the keybinding without the universal argument prefix, (2) with one universal argument prefix, or (3) with two universal argument prefixes. The universal argument prefix is 'SPC-u' in Doom Emacs (C-u in standard GNU Emacs). The function 'insert-any-date' only outputs to one format, which is the same format as 'insert-todays-date' without a prefix. +Some custom functions to insert the date. The function 'insert-todays-date' can +be used one of three different ways: (1) just the keybinding without the +universal argument prefix, (2) with one universal argument prefix, or (3) with +two universal argument prefixes. The universal argument prefix is 'SPC-u' in +Doom Emacs (C-u in standard GNU Emacs). The function 'insert-any-date' only +outputs to one format, which is the same format as 'insert-todays-date' without +a prefix. | COMMAND | EXAMPLE OUTPUT | KEYBINDING | |-----------------------+---------------------------+-----------------------| @@ -301,9 +333,12 @@ Some custom functions to insert the date. The function 'insert-todays-date' can Ivy is a generic completion mechanism for Emacs. ** IVY-POSFRAME -Ivy-posframe is an ivy extension, which lets ivy use posframe to show its candidate menu. Some of the settings below involve: -+ ivy-posframe-display-functions-alist -- sets the display position for specific programs -+ ivy-posframe-height-alist -- sets the height of the list displayed for specific programs +Ivy-posframe is an ivy extension, which lets ivy use posframe to show its +candidate menu. Some of the settings below involve: ++ ivy-posframe-display-functions-alist -- sets the display position for specific + programs ++ ivy-posframe-height-alist -- sets the height of the list displayed for + specific programs Available functions (positions) for 'ivy-posframe-display-functions-alist' + ivy-posframe-display-at-frame-center @@ -314,7 +349,10 @@ Available functions (positions) for 'ivy-posframe-display-functions-alist' + ivy-posframe-display-at-point + ivy-posframe-display-at-frame-top-center -=NOTE:= If the setting for 'ivy-posframe-display' is set to 'nil' (false), anything that is set to 'ivy-display-function-fallback' will just default to their normal position in Doom Emacs (usually a bottom split). However, if this is set to 't' (true), then the fallback position will be centered in the window. +=NOTE:= If the setting for 'ivy-posframe-display' is set to 'nil' (false), +anything that is set to 'ivy-display-function-fallback' will just default to +their normal position in Doom Emacs (usually a bottom split). However, if this +is set to 't' (true), then the fallback position will be centered in the window. #+BEGIN_SRC emacs-lisp (setq ivy-posframe-display-functions-alist @@ -337,7 +375,8 @@ Available functions (positions) for 'ivy-posframe-display-functions-alist' #+END_SRC ** IVY KEYBINDINGS -By default, Doom Emacs does not use 'SPC v', so the format I use for these bindings is 'SPC v' plus 'key'. +By default, Doom Emacs does not use 'SPC v', so the format I use for these +bindings is 'SPC v' plus 'key'. #+BEGIN_SRC emacs-lisp (map! :leader @@ -347,7 +386,11 @@ By default, Doom Emacs does not use 'SPC v', so the format I use for these bindi #+END_SRC * LINE SETTINGS -I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for me on my ZSA Moonlander keyboard. The standard Emacs keybinding for comment-line is 'C-x C-;'. The other keybindings are for commands that toggle on/off various line-related settings. Doom Emacs uses 'SPC t' for "toggle" commands, so I choose 'SPC t' plus 'key' for those bindings. +I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for +me on my ZSA Moonlander keyboard. The standard Emacs keybinding for +comment-line is 'C-x C-;'. The other keybindings are for commands that toggle +on/off various line-related settings. Doom Emacs uses 'SPC t' for "toggle" +commands, so I choose 'SPC t' plus 'key' for those bindings. | COMMAND | DESCRIPTION | KEYBINDING | |--------------------------+-------------------------------------------+-------------| @@ -382,7 +425,8 @@ I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for #+end_src * MODELINE -The modeline is the bottom status bar that appears in Emacs windows. For more information on what is available to configure in the Doom modeline, check out: +The modeline is the bottom status bar that appears in Emacs windows. For more +information on what is available to configure in the Doom modeline, check out: https://github.com/seagle0128/doom-modeline #+begin_src emacs-lisp @@ -401,7 +445,11 @@ Adding mouse support in the terminal version of Emacs. #+end_src * OPEN SPECIFIC FILES -Keybindings to open files that I work with all the time using the find-file command, which is the interactive file search that opens with 'C-x C-f' in GNU Emacs or 'SPC f f' in Doom Emacs. These keybindings use find-file non-interactively since we specify exactly what file to open. The format I use for these bindings is 'SPC =' plus 'key' since Doom Emacs does not use 'SPC ='. +Keybindings to open files that I work with all the time using the find-file +command, which is the interactive file search that opens with 'C-x C-f' in GNU +Emacs or 'SPC f f' in Doom Emacs. These keybindings use find-file +non-interactively since we specify exactly what file to open. The format I use +for these bindings is 'SPC =' plus 'key' since Doom Emacs does not use 'SPC ='. | PATH TO FILE | DESCRIPTION | KEYBINDING | |--------------------------------+-----------------------+------------| @@ -420,7 +468,10 @@ Keybindings to open files that I work with all the time using the find-file comm #+END_SRC * ORG MODE -I wrapped most of this block in (after! org). Without this, my settings might be evaluated too early, which will result in my settings being overwritten by Doom's defaults. I have also enabled org-journal, org-superstar and org-roam by adding (+journal +pretty +roam2) to the org section of my Doom Emacs init.el. +I wrapped most of this block in (after! org). Without this, my settings might +be evaluated too early, which will result in my settings being overwritten by +Doom's defaults. I have also enabled org-journal, org-superstar and org-roam by +adding (+journal +pretty +roam2) to the org section of my Doom Emacs init.el. #+BEGIN_SRC emacs-lisp (map! :leader @@ -492,7 +543,8 @@ I wrapped most of this block in (after! org). Without this, my settings might b #+end_src ** Org-auto-tangle -=org-auto-tangle= allows you to add the option =#+auto_tangle: t= in your Org file so that it automatically tangles when you save the document. +=org-auto-tangle= allows you to add the option =#+auto_tangle: t= in your Org file +so that it automatically tangles when you save the document. #+begin_src emacs-lisp (use-package! org-auto-tangle @@ -503,7 +555,10 @@ I wrapped most of this block in (after! org). Without this, my settings might b #+end_src * RAINBOW MODE -Rainbox mode displays the actual color for any hex value color. It's such a nice feature that I wanted it turned on all the time, regardless of what mode I am in. The following creates a global minor mode for rainbow-mode and enables it. +Rainbox mode displays the actual color for any hex value color. It's such a +nice feature that I wanted it turned on all the time, regardless of what mode I +am in. The following creates a global minor mode for rainbow-mode and enables +it. #+begin_src emacs-lisp (define-globalized-minor-mode global-rainbow-mode rainbow-mode @@ -512,7 +567,14 @@ Rainbox mode displays the actual color for any hex value color. It's such a nic #+end_src * REGISTERS -Emacs registers are compartments where you can save text, rectangles and positions for later use. Once you save text or a rectangle in a register, you can copy it into the buffer once or many times; once you save a position in a register, you can jump back to that position once or many times. The default GNU Emacs keybindings for these commands (with the exception of counsel-register) involves 'C-x r' followed by one or more other keys. I wanted to make this a little more user friendly, and since I am using Doom Emacs, I choose to replace the 'C-x r' part of the key chords with 'SPC r'. +Emacs registers are compartments where you can save text, rectangles and +positions for later use. Once you save text or a rectangle in a register, you +can copy it into the buffer once or many times; once you save a position in a +register, you can jump back to that position once or many times. The default +GNU Emacs keybindings for these commands (with the exception of +counsel-register) involves 'C-x r' followed by one or more other keys. I wanted +to make this a little more user friendly, and since I am using Doom Emacs, I +choose to replace the 'C-x r' part of the key chords with 'SPC r'. | COMMAND | DESCRIPTION | KEYBINDING | |----------------------------------+----------------------------------+------------| @@ -546,7 +608,8 @@ Emacs registers are compartments where you can save text, rectangles and positio * SHELLS Settings for the various shells and terminal emulators within Emacs. -+ 'shell-file-name' -- sets the shell to be used in M-x shell, M-x term, M-x ansi-term and M-x vterm. ++ 'shell-file-name' -- sets the shell to be used in M-x shell, M-x term, M-x + ansi-term and M-x vterm. #+BEGIN_SRC emacs-lisp (setq shell-file-name "/bin/fish" @@ -556,7 +619,13 @@ Settings for the various shells and terminal emulators within Emacs. #+END_SRC * SPLITS -I set splits to default to opening on the right using 'prefer-horizontal-split'. I set a keybinding for 'clone-indirect-buffer-other-window' for when I want to have the same document in two splits. The text of the indirect buffer is always identical to the text of its base buffer; changes made by editing either one are visible immediately in the other. But in all other respects, the indirect buffer and its base buffer are completely separate. For example, I can fold one split but other will be unfolded. +I set splits to default to opening on the right using 'prefer-horizontal-split'. +I set a keybinding for 'clone-indirect-buffer-other-window' for when I want to +have the same document in two splits. The text of the indirect buffer is always +identical to the text of its base buffer; changes made by editing either one are +visible immediately in the other. But in all other respects, the indirect +buffer and its base buffer are completely separate. For example, I can fold one +split but other will be unfolded. #+BEGIN_SRC emacs-lisp (defun prefer-horizontal-split () @@ -568,7 +637,10 @@ I set splits to default to opening on the right using 'prefer-horizontal-split'. #+END_SRC * WINNER MODE -Winner mode has been included with GNU Emacs since version 20. This is a global minor mode and, when activated, it allows you to “undo” (and “redo”) changes in the window configuration with the key commands 'SCP w ' and 'SPC w '. +Winner mode has been included with GNU Emacs since version 20. This is a global +minor mode and, when activated, it allows you to “undo” (and “redo”) changes in +the window configuration with the key commands 'SCP w ' and 'SPC w +'. #+BEGIN_SRC emacs-lisp (map! :leader @@ -578,7 +650,12 @@ Winner mode has been included with GNU Emacs since version 20. This is a global #+END_SRC * ZAP TO CHAR -Emacs provides a 'zap-to-char' command that kills from the current point to a character. It is bound to 'M-z' in standard GNU Emacs but since Doom Emacs uses 'SPC' as its leader key and does not have 'SPC z' binded to anything, it just makes since to use it for 'zap-to-char'. Note that 'zap-to-char' can be used with the universal argument 'SPC u' to modify its behavior. Examples of 'zap-to-char' usage are listed in the table below: +Emacs provides a 'zap-to-char' command that kills from the current point to a +character. It is bound to 'M-z' in standard GNU Emacs but since Doom Emacs uses +'SPC' as its leader key and does not have 'SPC z' binded to anything, it just +makes since to use it for 'zap-to-char'. Note that 'zap-to-char' can be used +with the universal argument 'SPC u' to modify its behavior. Examples of +'zap-to-char' usage are listed in the table below: | KEYBINDING | WHAT IS DOES | |---------------------------+------------------------------------------------------------| @@ -588,11 +665,20 @@ Emacs provides a 'zap-to-char' command that kills from the current point to a ch | SPC u -2 SPC z e | deletes all chars to the fourth previous occurrence of 'e' | | SPC u 1 0 0 SPC u SPC z e | deletes all chars to the 100th occurrence of 'e' | -=TIP:= The universal argument (SPC u) can only take a single integer by default. If you need to use a multi-digit number (like 100 in the last example in the table above), then you must terminate the universal argument with another 'SPC u' after typing the number. +=TIP:= The universal argument (SPC u) can only take a single integer by default. +If you need to use a multi-digit number (like 100 in the last example in the +table above), then you must terminate the universal argument with another 'SPC +u' after typing the number. -'zap-up-to-char' is an alternative command that does not zap the char specified. It is binded to 'SPC Z'. It can also be used in conjunction with the universal argument 'SPC u' in similar fashion to the the 'zap-to-char' examples above. +'zap-up-to-char' is an alternative command that does not zap the char specified. +It is binded to 'SPC Z'. It can also be used in conjunction with the universal +argument 'SPC u' in similar fashion to the the 'zap-to-char' examples above. -=NOTE:= Vim (evil mode) has similar functionality builtin. You can delete to the next occurrence of 'e' by using 'dte' in normal. To delete to the next occurrence of 'e' including the 'e', then you would use 'dfe'. And you can modify 'dt' and 'df' by prefixing them with numbers, so '2dte' would delete to the second occurrence of 'e'. +=NOTE:= Vim (evil mode) has similar functionality builtin. You can delete to the +next occurrence of 'e' by using 'dte' in normal. To delete to the next +occurrence of 'e' including the 'e', then you would use 'dfe'. And you can +modify 'dt' and 'df' by prefixing them with numbers, so '2dte' would delete to +the second occurrence of 'e'. #+BEGIN_SRC emacs-lisp (map! :leader @@ -605,6 +691,6 @@ Emacs provides a 'zap-to-char' command that kills from the current point to a ch Transparent window #+BEGIN_SRC emacs-lisp -(set-frame-parameter nil 'alpha-background 90) ; For current frame -(add-to-list 'default-frame-alist '(alpha-background . 90)) ; For all new frames henceforth +(set-frame-parameter nil 'alpha-background 85) ; For current frame +(add-to-list 'default-frame-alist '(alpha-background . 85)) ; For all new frames henceforth #+END_SRC diff --git a/user/.config/fish/config.fish b/user/.config/fish/config.fish index df9ad8b90..fd085fc39 100644 --- a/user/.config/fish/config.fish +++ b/user/.config/fish/config.fish @@ -9,13 +9,14 @@ # First line removes the path; second line sets it. Without the first line, # your path gets massive and fish becomes very slow. set -e fish_user_paths -set -U fish_user_paths $HOME/.bin $HOME/.local/bin /var/lib/flatpak/exports/bin/ $fish_user_paths +set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/go/bin $HOME/Applications /var/lib/flatpak/exports/bin/ $fish_user_paths ### EXPORT ### set fish_greeting # Supresses fish's intro message set TERM "xterm-256color" # Sets the terminal type -set EDITOR "~/.local/bin/lvim" -set VISUAL "alacritty --class editor -e ~/.local/bin/lvim" +set EDITOR "emacsclient -t -a ''" +set VISUAL "emacsclient -c -a emacs" +set GOPATH "~/go" ### SET BAT AS MANPAGER set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" @@ -156,8 +157,8 @@ alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' # file management -alias fm="vifm" -alias flm="vifm" +alias fm="~/.config/vifm/scripts/vifmrun" +alias flm="~/.config/vifm/scripts/vifmrun" alias cp='cp -iv' alias mv='mv -iv' alias rm='rm -vI' diff --git a/user/.config/fuzzel/fuzzel.ini b/user/.config/fuzzel/fuzzel.ini index 483d59926..250d64028 100644 --- a/user/.config/fuzzel/fuzzel.ini +++ b/user/.config/fuzzel/fuzzel.ini @@ -1,6 +1,7 @@ -font=Mononoki Nerd Font:size=09 +font=Mononoki Nerd Font:size=16 prompt=" " icon-theme=Papirus-Dark +dpi-aware=no icons-enabled=yes password-character=* fuzzy=yes @@ -24,7 +25,7 @@ border=cc241dff [border] width=3 -radius=12 +radius=4 [dmenu] mode=text diff --git a/user/.config/fuzzel/scripts/fuzz_power b/user/.config/fuzzel/scripts/fuzz_power index 9a29761cf..d029d1ff4 100755 --- a/user/.config/fuzzel/scripts/fuzz_power +++ b/user/.config/fuzzel/scripts/fuzz_power @@ -49,7 +49,7 @@ case "$action" in systemctl suspend; ;; "$option5") - "$HOME/.config/hypr/scripts/lock"; + hyprlock; ;; "$option6") ##### diff --git a/user/.config/fuzzel/scripts/fuzz_wall b/user/.config/fuzzel/scripts/fuzz_wall deleted file mode 100755 index a4f4d92ff..000000000 --- a/user/.config/fuzzel/scripts/fuzz_wall +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple wallpaper changer script for rofi/dmenu/wofi -# - Dependencies: {rofi||dmenu||wofi}, fd, swaybg - -## WALLPAPER DIRECTORY ## -walldir="$XDG_PICTURES_DIR/Wallpapers" # wallpapers folder, change it to yours - -## SELECT PICTURE ## -cd "$walldir" || exit 1 -wallpaper=$(fd -p "$walldir" | $RUNNER -l 5 -i -p "[󰋩 Wallpaper Selector]  ") -if [ -n "$wallpaper" ]; then - swww img "$wallpaper" -else - exit 0 -fi -exit 0 diff --git a/user/.config/gtk-2.0/gtkrc-2.0 b/user/.config/gtk-2.0/gtkrc-2.0 index e2e9a58f1..dc1cd6b02 100644 --- a/user/.config/gtk-2.0/gtkrc-2.0 +++ b/user/.config/gtk-2.0/gtkrc-2.0 @@ -1,6 +1,6 @@ gtk-theme-name="Gruvbox-Dark-BL" gtk-icon-theme-name="Papirus-Dark" -gtk-font-name="Cantarell 12" +gtk-font-name="Inter 12" gtk-cursor-theme-name="Simp1e-Gruvbox-Dark" gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/user/.config/gtk-3.0/settings.ini b/user/.config/gtk-3.0/settings.ini index ff6cc6558..873a0f907 100644 --- a/user/.config/gtk-3.0/settings.ini +++ b/user/.config/gtk-3.0/settings.ini @@ -1,7 +1,7 @@ [Settings] gtk-theme-name=Gruvbox-Dark-BL gtk-icon-theme-name=Papirus-Dark -gtk-font-name=Cantarell 12 +gtk-font-name=Inter 12 gtk-cursor-theme-name=Simp1e-Gruvbox-Dark gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/user/.config/hypr/hypridle.conf b/user/.config/hypr/hypridle.conf index 8192d4349..20fd04c25 100644 --- a/user/.config/hypr/hypridle.conf +++ b/user/.config/hypr/hypridle.conf @@ -3,9 +3,9 @@ # ┻ ┻┛ ┗┛┗┛ general { - lock_cmd = pidof swaylock || $HOME/.config/hypr/scripts/lock # avoid starting multiple hyprlock instances. - before_sleep_cmd = loginctl lock-session # lock before suspend. - after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. } listener { diff --git a/user/.config/hypr/hyprland.conf b/user/.config/hypr/hyprland.conf index c803916d1..2386ad3d3 100644 --- a/user/.config/hypr/hyprland.conf +++ b/user/.config/hypr/hyprland.conf @@ -6,13 +6,13 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR exec-once = dbus-update-activation-environment --systemd --all exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = /usr/libexec/kf5/polkit-kde-authentication-agent-1 +exec-once = $HOME/.config/hypr/scripts/xdg-portals exec-once = waybar exec-once = mako -c ~/.config/mako/config -exec-once = swww init -exec-once = $HOME/.config/hypr/scripts/xdg-portals exec-once = $HOME/.config/hypr/scripts/clip -exec-once = emacs --daemon +exec-once = hyprpaper exec-once = hypridle +exec-once = emacs --daemon # ┏━╸┏┓╻╻ ╻ # ┣╸ ┃┗┫┃┏┛ @@ -34,7 +34,7 @@ env = WLR_NO_HARDWARE_CURSORS,1 env = HYPRLAND_NO_SD_NOTIFY=0 env = XKB_DEFAULT_LAYOUT,us env = ELECTRON_OZONE_PLATFORM_HINT,auto -env = TERMINAL,wezterm +env = TERMINAL,alacritty env = BROWSER,flatpak run org.mozilla.firefox env = VIEWER,zathura env = RUNNER,fuzzel --dmenu @@ -44,8 +44,10 @@ env = RUNNER_EX,fuzzel # ┃┃┃┃ ┃┃┗┫┃ ┃ ┃ ┃┣┳┛ # ╹ ╹┗━┛╹ ╹╹ ╹ ┗━┛╹┗╸ -monitor=eDP-1, 1920x1080@60 , 0x0, 1 -monitor=HDMI-A-1, 1920x1080@60 , 1920x0, 1 +monitor=HDMI-A-1, preferred, auto, 1 +monitor=eDP-1, preferred, auto, 1 +bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1" +bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" # ╻┏┓╻┏━┓╻ ╻╺┳╸ # ┃┃┗┫┣━┛┃ ┃ ┃ diff --git a/user/.config/hypr/hyprlock.conf b/user/.config/hypr/hyprlock.conf new file mode 100644 index 000000000..12c279bf9 --- /dev/null +++ b/user/.config/hypr/hyprlock.conf @@ -0,0 +1,73 @@ +# _ _ _ +# | |__ _ _ _ __ _ __| | ___ ___| | __ +# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ / +# | | | | |_| | |_) | | | | (_) | (__| < +# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\ +# |___/|_| + +general { + grace = 1 +} + +background { + monitor = + path = $HOME/.config/hypr/wall/lock.png # only png supported for now + blur_passes = 3 # 0 disables blurring + blur_size = 3 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +input-field { + monitor = + size = 300, 50 + outline_thickness = 2 + dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + dots_rounding = -1 # -1 default circle, -2 follow input-field rounding + outer_color = rgb(102, 92, 84) + inner_color = rgb(40, 40, 40) + font_color = rgb(235, 219, 178) + fade_on_empty = false + fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. + placeholder_text = Input password... # Text rendered in the input box when it's empty. + hide_input = false + rounding = -1 # -1 means complete rounding (circle/oval) + check_color = rgb(250, 189, 47) + fail_color = rgb(211, 134, 155) # if authentication failed, changes outer_color and fail message color + fail_text = $FAIL ($ATTEMPTS) # can be set to empty + fail_transition = 300 # transition time in ms between normal outer_color and fail_color + capslock_color = rgb(142, 192, 124) + numlock_color = -1 + bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) + invert_numlock = false # change color if numlock is off + position = 0, -50 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo "$TIME" + color = rgb(251, 241, 199) + font_size = 92 + font_family = Inter Bold + position = 0, 80 + halign = center + valign = center +} + +label { + monitor = + text = or press Enter for fingerprint auth... + color = rgb(251, 241, 199) + font_size = 10 + font_family = Inter + position = 0, -90 + halign = center + valign = center +} diff --git a/user/.config/hypr/hyprpaper.conf b/user/.config/hypr/hyprpaper.conf new file mode 100644 index 000000000..06d8dbdda --- /dev/null +++ b/user/.config/hypr/hyprpaper.conf @@ -0,0 +1,4 @@ +preload = $HOME/.config/hypr/wall/wall.png +wallpaper = eDP-1,$HOME/.config/hypr/wall/wall.png +wallpaper = HDMI-A-1,$HOME/.config/hypr/wall/wall.png +splash = false diff --git a/user/.config/hypr/keybindings.conf b/user/.config/hypr/keybindings.conf index 4b9f312c3..21579085e 100644 --- a/user/.config/hypr/keybindings.conf +++ b/user/.config/hypr/keybindings.conf @@ -85,7 +85,6 @@ binde = $supMod_$conMod_SHIFT, p, exec, hyprpicker -n -a # run launcher binds binde = $supMod_SHIFT, d, exec, pkill fuzzel || $RUNNER_EX --show drun # launch desktop run launcher binde = $supMod_SHIFT, r, exec, pkill fuzzel || $RUNNER_EX --show run # launch command run launcher -binde = $supMod_SHIFT, w, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_wall # launch wallpaper selector binde = $supMod_SHIFT, i, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_wifi # launch wifi configuration utility binde = $supMod_SHIFT, e, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_emoji # launch emoji picker binde = $supMod_SHIFT, c, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_clip # launch clipboard manager @@ -95,17 +94,18 @@ binde = $supMod_SHIFT, b, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/f binde = $supMod_SHIFT, m, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_mount # launch drive mounter # apps binds -binde = $supMod_$altMod, r, exec, alacritty --class newsboat -e newsboat # launch news feed reader -binde = $supMod_$altMod, y, exec, alacritty --class ytfzf -e ytfzf -flstT chafa # launch youtube player -binde = $supMod_$altMod, m, exec, alacritty --class ytfzf_music -e ytfzf -mlstT chafa # launch youtube music player +binde = $supMod_$altMod, y, exec, alacritty --class ytfzf -e ytfzf -flstT wayland # launch youtube player +binde = $supMod_$altMod, m, exec, alacritty --class ytfzf_music -e ytfzf -mlstT wayland # launch youtube music player binde = $supMod_$altMod, f, exec, alacritty --class flix_cli -e flix-cli # launch torrent movie player binde = $supMod_$altMod, a, exec, alacritty --class ani_cli -e ani-cli # launch anime player binde = $supMod_$altMod, b, exec, alacritty --class btop -e btop # launch resource monitor -binde = $supMod_$altMod, p, exec, pavucontrol # launch audio mixer +binde = $supMod_$altMod, p, exec, alacritty --class pulsemixer -e pulsemixer # launch audio mixer binde = $supMod_$conMod, f, exec, alacritty --class file_manager -e $HOME/.config/vifm/scripts/vifmrun # launch file manager binde = $supMod_$conMod, e, exec, emacsclient -c -a 'emacs' # launch text editor binde = $supMod_$conMod, w, exec, flatpak run org.mozilla.firefox # launch web browser +binde = $supMod_$conMod, r, exec, alacritty --class newsboat -e newsboat # launch rss feed reader +binde = $supMod_$conMod, p, exec, flatpak run org.gnome.Podcasts # launch podcasts player binde = $supMod_$conMod, c, exec, flatpak run org.signal.Signal # launch chat app -binde = $supMod_$conMod, g, exec, flatpak run org.libretro.Retroarch # launch gaming app -binde = $supMod_$conMod, p, exec, flatpak run com.bitwarden.desktop # launch password manager +binde = $supMod_$conMod, r, exec, flatpak run org.libretro.Retroarch # launch gaming app +binde = $supMod_$conMod, b, exec, flatpak run com.bitwarden.desktop # launch password manager binde = $supMod_$conMod, m, exec, alacritty --class musikcube -e musikcube # launch music player diff --git a/user/.config/hypr/rules.conf b/user/.config/hypr/rules.conf index c87a3d5ec..d6f53cc15 100644 --- a/user/.config/hypr/rules.conf +++ b/user/.config/hypr/rules.conf @@ -23,7 +23,7 @@ windowrulev2 = float,class:^(qalculate-gtk)$ windowrule = workspace 1, ^(neovim)$ windowrule = workspace 1, ^(goneovim)$ windowrule = workspace 1, ^(Code)$ -windowrule = workspace 1, ^(Emacs)$ +windowrule = workspace 1, ^(emacs)$ windowrule = workspace 1, ^(neovide)$ windowrule = workspace 1, ^(jetbrains-rider)$ windowrule = workspace 1, ^(jetbrains-datagrip)$ @@ -39,10 +39,12 @@ windowrule = workspace 2, ^(wdisplays)$ windowrule = workspace 2, ^(font-manager)$ windowrule = workspace 2, ^(org.qbittorrent.qBittorrent)$ windowrule = workspace 2, ^(btop)$ +windowrule = workspace 2, ^(file-roller)$ # workspace 3 - file management windowrule = workspace 3, ^(file_manager)$ windowrule = workspace 3, ^(pcmanfm)$ +windowrule = workspace 3, ^(org.gnome.Nautilus)$ # workspace 4 - web browsing windowrule = workspace 4, ^(org.qutebrowser.qutebrowser)$ @@ -78,6 +80,10 @@ windowrule = workspace 6, ^(org.rncbc.qpwgraph)$ windowrule = workspace 6, ^(soundconverter)$ windowrule = workspace 6, ^(kid3-qt)$ windowrule = workspace 6, ^(com.github.wwmm.easyeffects)$ +windowrule = workspace 6, ^(de.haeckerfelix.Shortwave)$ +windowrule = workspace 6, ^(com.github.Bleuzen.FFaudioConverter)$ +windowrule = workspace 6, ^(flacon)$ +windowrule = workspace 6, ^(org.gnome.Podcasts)$ # workspace 7 - video windowrule = workspace 7, ^(pitivi)$ @@ -111,6 +117,8 @@ windowrule = workspace 9, ^(org.pwmt.zathura)$ windowrule = workspace 9, ^(xournalpp)$ windowrule = workspace 9, ^(com.github.flxzt.rnote)$ windowrule = workspace 9, ^(Joplin)$ +windowrule = workspace 9, ^(com.github.johnfactotum.Foliate)$ +windowrule = workspace 9, ^(evince)$ # workspace 5 - games windowrule = workspace 10, ^(org.libretro.RetroArch)$ diff --git a/user/.config/hypr/scripts/lock b/user/.config/hypr/scripts/lock deleted file mode 100755 index 976a44550..000000000 --- a/user/.config/hypr/scripts/lock +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -currwall=$(swww query | awk '{print $8}') - -swaylock -f -i "$currwall" diff --git a/user/.config/hypr/theme.conf b/user/.config/hypr/theme.conf index de8eee4fb..034b29da2 100644 --- a/user/.config/hypr/theme.conf +++ b/user/.config/hypr/theme.conf @@ -4,6 +4,7 @@ env = XCURSOR_THEME,Simp1e-Gruvbox-Dark env = XCURSOR_SIZE,16 +env = GTK_THEME,Gruvbox-Dark-BL exec = hyprctl setcursor Simp1e-Gruvbox-Dark 16 exec = gsettings set org.gnome.desktop.interface cursor-theme 'Simp1e-Gruvbox-Dark' @@ -31,7 +32,7 @@ decoration { noise = 0.2 brightness = 0.8 } - rounding = 12 + rounding = 4 drop_shadow = yes shadow_range = 5 shadow_render_power = 3 @@ -50,7 +51,7 @@ decoration { # ┣╸ ┃ ┃┃┗┫ ┃ # ╹ ┗━┛╹ ╹ ╹ -exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 12' +exec = gsettings set org.gnome.desktop.interface font-name 'Inter 12' exec = gsettings set org.gnome.desktop.interface document-font-name 'Liberation Sans 12' exec = gsettings set org.gnome.desktop.interface monospace-font-name 'Mononoki Nerd Font 12' exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' diff --git a/user/.config/hypr/wall/lock.png b/user/.config/hypr/wall/lock.png new file mode 100755 index 0000000000000000000000000000000000000000..50b21d8c8a11072321c275307e6419e2aa62b36d GIT binary patch literal 21648 zcmeHvd011|_VxiMYD-aDtD=A{_S!mNZHpktPzO*^Q6NOd;D~}u0y2iAt<}~lRC@vE zXq6!e5ELPdNh(DsDyf(d5F}_+N*E$w5=cn$?R_E{klTBo=le(d>-mSB<2gHful4S= z-ZjJ@wr+7Xo@zQ3K@j5&>(_c92pmqjWMl~bnC(3AJ%V^)H>~~2EB<`XLx+QNSKgSs zHS}1;R`N05`%8WejqKQTW&-Uix6=-vZX5W8et1^=#fb@R3%>i;*R43xd)E@3gfu(rA{ zqlrjq(%>{28QQ1G_YK}r8;@y^`yLJ1Cc#g~n-2A**rr_nkxqlAY_`jk&(zO28=0}d zDCru9Suvy#;Nxb3PoI7FZV>nbF5)yhq5*

daZ-)3gm^UXwQ->Myxa;a1D@`f9Rt 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

daZ-)3gm^UXwQ->Myxa;a1D@`f9Rt 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