dotfiles

My PC Dotfiles & Website
commit 9fa3dc5c75cc774e198305a76e4e87364ef3c4ba
parent f240bd6894665b7e44a8c42e84c12f9da04c9776
Author: maydayv7 <maydayv7@gmail.com>
Date:   Tue, 16 Apr 2024 18:54:22 +0530

feat: Hyprland Workflow Improvements

+ Use `clipse` instead of `nwg-clipman`
+ Add back applications overview

Diffstat:

Mfiles/README.md | 2+-
Rfiles/archive/.keep -> files/_archive/.keep | 0
Rfiles/archive/Linux/Arch/COMMANDS.md -> files/_archive/Linux/Arch/COMMANDS.md | 0
Rfiles/archive/Linux/Arch/INSTALL.md -> files/_archive/Linux/Arch/INSTALL.md | 0
Rfiles/archive/Linux/Arch/zshrc -> files/_archive/Linux/Arch/zshrc | 0
Rfiles/archive/Linux/Pop/conky/conky.lua -> files/_archive/Linux/Pop/conky/conky.lua | 0
Rfiles/archive/Linux/Pop/conky/conkyrc -> files/_archive/Linux/Pop/conky/conkyrc | 0
Rfiles/archive/Linux/Pop/neofetch/config.conf -> files/_archive/Linux/Pop/neofetch/config.conf | 0
Rfiles/archive/Linux/Pop/p10k.zsh -> files/_archive/Linux/Pop/p10k.zsh | 0
Rfiles/archive/Windows/APPS.md -> files/_archive/Windows/APPS.md | 0
Rfiles/archive/Windows/Velociraptor.rmskin -> files/_archive/Windows/Velociraptor.rmskin | 0
Mfiles/flake.nix | 3+++
Dfiles/geany/catppuccin.conf | 126-------------------------------------------------------------------------------
Mfiles/hyprland/binds.pango | 4+++-
Afiles/hyprland/clipse.json | 16++++++++++++++++
Mfiles/hyprland/pypr.toml | 4++--
Mfiles/ulauncher/settings/extension.json | 7-------
Mflake.lock | 27++++++++++++++++++++++++---
Mflake.nix | 5+++++
Mmodules/gui/desktop/hyprland/apps/bar.nix | 4++--
Mmodules/gui/desktop/hyprland/apps/default.nix | 18+++++++++++-------
Mmodules/gui/desktop/hyprland/apps/rules.nix | 2+-
Mmodules/gui/desktop/hyprland/settings/keybindings.nix | 6------
Mmodules/gui/desktop/hyprland/settings/plugins.nix | 27++++++++++++++++++++++++---
Mmodules/gui/qt.nix | 43++++++++++++++++++++++++-------------------
Mpackages/flake.nix | 1+
Apackages/geany-catppuccin/default.nix | 31+++++++++++++++++++++++++++++++
Apackages/geany-catppuccin/metadata.nix | 5+++++
Dpackages/nwg-clipman.nix | 49-------------------------------------------------
29 files changed, 153 insertions(+), 227 deletions(-)

diff --git a/files/README.md b/files/README.md @@ -27,4 +27,4 @@ The `files` directory is used to store all my plain-text program configuration f - [`xorg`](./xorg) - X11 Display Server Configuration - [`zsh`](./zsh) - Z Shell Configuration and Prompt Theming -- [`archive`](./archive) - Old, Archived Files +- [`archive`](./_archive) - Old, Archived Files diff --git a/files/archive/.keep b/files/_archive/.keep diff --git a/files/archive/Linux/Arch/COMMANDS.md b/files/_archive/Linux/Arch/COMMANDS.md diff --git a/files/archive/Linux/Arch/INSTALL.md b/files/_archive/Linux/Arch/INSTALL.md diff --git a/files/archive/Linux/Arch/zshrc b/files/_archive/Linux/Arch/zshrc diff --git a/files/archive/Linux/Pop/conky/conky.lua b/files/_archive/Linux/Pop/conky/conky.lua diff --git a/files/archive/Linux/Pop/conky/conkyrc b/files/_archive/Linux/Pop/conky/conkyrc diff --git a/files/archive/Linux/Pop/neofetch/config.conf b/files/_archive/Linux/Pop/neofetch/config.conf diff --git a/files/archive/Linux/Pop/p10k.zsh b/files/_archive/Linux/Pop/p10k.zsh diff --git a/files/archive/Windows/APPS.md b/files/_archive/Windows/APPS.md diff --git a/files/archive/Windows/Velociraptor.rmskin b/files/_archive/Windows/Velociraptor.rmskin Binary files differ. diff --git a/files/flake.nix b/files/flake.nix @@ -76,6 +76,9 @@ # Binds binds = ./hyprland/binds.pango; + # Clipboard Manager + clipse = readFile ./hyprland/clipse.json; + # Pyprland pypr = readFile ./hyprland/pypr.toml; diff --git a/files/geany/catppuccin.conf b/files/geany/catppuccin.conf @@ -1,126 +0,0 @@ -[theme_info] -name=Catppuccin Macchiato -description=Soothing pastel theme for the high-spirited! -version=0.2.5 -author=Isabelinc -compat=1.22;1.23;1.23.1;1.24 - -[named_colors] -mantle=#1e2030 -base=#24273a -surface0=#363a4f -# -text=#cad3f5 -subtext0=#A5ADCB -subtext1=#B8C0E0 -# -overlay2=#939AB7 -overlay1=#8087A2 -overlay0=#6E738D -# -blue=#8AADF4 -sky=#91d7e3 -teal=#8bd5ca -yellow=#eed49f -green=#a6da95 -flamingo=#f0c6c6 -mauve=#c6a0f6 -pink=#f5bde6 -maroon=#ee99a0 -red=#ed8796 -peach=#f5a97f -rosewater=#f4dbd6 -lavender=#b7bdf8 -sapphire=#7dc4e4 - - -[named_styles] -operator=blue -default=subtext1;base;false;false -error=red;yellow;false;true -op=blue;base;true;false - -# Editor UI -# selection: words; background -selection=pink;blue;false;false -current_line=;surface0;true -brace_good=green;overlay1;true;true -brace_bad=red;overlay1;true;true -margin_line_number=text;base -margin_folding=text;surface0 -fold_symbol_highlight=text -indent_guide=overlay1 -caret=text;;false -marker_line=yellow;yellow -marker_search=mantle;blue -marker_mark=green;surface0 -call_tips=overlay1;text;false;false -white_space=overlay1;;true - -# Basic Languages -comment=overlay0 -comment_doc=comment -comment_line=overlay0 -comment_line_doc=comment_doc -comment_doc_keyword=comment,bold -comment_doc_keyword_error=comment,italic - -number=teal -number_1=number -number_2=number_1 - -# class <color()> -type=pink;;flase;true; - -class=blue -# def <color():> -function=teal;;false;true; -parameter=peach - - -keyword=default -# def, for, in -keyword_1=red;;false;true -keyword_2=default -keyword_3=peach -keyword_4=keyword_2 - -identifier=sky;;false;false -# main -identifier_1=subtext0;;false;false -identifier_2=default -identifier_3=identifier_2 -identifier_4=identifier_2 - -string=green;;false;false -string_1=peach;;false;false -string_2=green;;false;false -string_3=default -string_4=default -string_eol=string_1 -character=string_1 -backticks=string_2 -here_doc=string_2 - -scalar=string_2 -label=red -preprocessor=green -regex=pink -operator=lavender;;true;false -decorator=string_1 -other=default -extra=keyword; - -# Markup -tag=keyword -tag_unknown=tag,bold -tag_end=tag,bold -attribute=type -attribute_unknown=attribute,bold -value=number -entity=number - -# Diff -line_added=green -line_removed=red -line_changed=preprocessor diff --git a/files/hyprland/binds.pango b/files/hyprland/binds.pango @@ -14,7 +14,9 @@ <tt>$mod SHIFT Space</tt> Toggle application grouping <tt>$mod CTRL Tab</tt> Show workspace expose view -<tt>$mod [SHIFT] Tab</tt> Show workspace overview [of all monitors] +<tt>$mod [SHIFT] Tab</tt> Show workspace overview [for all monitors] +<tt>ALT [SHIFT] Tab</tt> Show application overview [for all workspaces] +<tt>ALT <i>ARROW</i></tt> Switch to window in desired direction (in overview) <tt>ALT [SHIFT] Tab</tt> Cycle [backwards] through open applications <tt>ALT CTRL Tab</tt> Activate urgent/last window <tt>ALT [SHIFT] `</tt> Cycle [backwards] through grouped applications diff --git a/files/hyprland/clipse.json b/files/hyprland/clipse.json @@ -0,0 +1,16 @@ +{ + "useCustomTheme": true, + "DimmedDesc": "#@base07", + "DimmedTitle": "#@base07", + "FilteredMatch": "#@base08", + "NormalTitle": "#base08", + "NormalDesc": "#@base0B", + "SelectedDesc": "#@base0D", + "SelectedTitle": "#@base0D", + "SelectedBorder": "#@base0D", + "SelectedDescBorder": "#@base0D", + "TitleFore": "#@base05", + "Titleback": "#@base01", + "StatusMsg": "#@base0E", + "PinIndicatorColor": "#@base0F" +} diff --git a/files/hyprland/pypr.toml b/files/hyprland/pypr.toml @@ -13,8 +13,8 @@ size = "75% 60%" [scratchpads.clip] animation = "fromBottom" -command = "nwg-clipman -nw" -class = "nwg-clipman" +command = "kitty --class clipse clipse $PPID" +class = "clipse" lazy = true size = "75% 65%" margin = 30 diff --git a/files/ulauncher/settings/extension.json b/files/ulauncher/settings/extension.json @@ -83,13 +83,6 @@ "last_commit": "54622e353a7d2d0421250a76cab4aafa9ca720c5", "last_commit_time": "2022-01-16T17:56:00" }, - "com.github.friday.ulauncher-clipboard": { - "id": "com.github.friday.ulauncher-clipboard", - "url": "https://github.com/friday/ulauncher-clipboard", - "updated_at": "2024-01-28T12:22:40.891939", - "last_commit": "dde8e6c9db80b0c9301ebdc9b13c4383b4789bc8", - "last_commit_time": "2023-11-27T22:23:17" - }, "com.github.hillaryychan.ulauncher-fzf": { "id": "com.github.hillaryychan.ulauncher-fzf", "url": "https://github.com/hillaryychan/ulauncher-fzf", diff --git a/flake.lock b/flake.lock @@ -518,6 +518,26 @@ "type": "github" } }, + "hycov": { + "inputs": { + "hyprland": [ + "hyprland" + ] + }, + "locked": { + "lastModified": 1713156476, + "narHash": "sha256-CDWaSJhsWgoHE43lCI+AUPt8hyTt8gb1rrQsJka+trg=", + "owner": "DreamMaoMao", + "repo": "hycov", + "rev": "10ecd517f1e0dc51e4c2b9e114a7a24e765d1bed", + "type": "github" + }, + "original": { + "owner": "DreamMaoMao", + "repo": "hycov", + "type": "github" + } + }, "hyprcursor": { "inputs": { "hyprlang": [ @@ -664,11 +684,11 @@ ] }, "locked": { - "lastModified": 1713165700, - "narHash": "sha256-gDrXQpub0lxJu1IlDnfttSSMGYsf36XvYoLbUuvYpsE=", + "lastModified": 1713240951, + "narHash": "sha256-Nvbn1baUNN7AQOA1hHunUHuFziF0dErqaTlfxr9NNwo=", "owner": "KZDKM", "repo": "Hyprspace", - "rev": "0d3b9466cf6fc19a3173d4dfa58fe37178e6aaae", + "rev": "954eda50aca5ef986c557f3b515c4321fd3c7fd8", "type": "github" }, "original": { @@ -964,6 +984,7 @@ "generators": "generators", "hardware": "hardware", "home-manager": "home-manager", + "hycov": "hycov", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", "hyprspace": "hyprspace", diff --git a/flake.nix b/flake.nix @@ -154,6 +154,11 @@ inputs.hyprland.follows = "hyprland"; }; + hycov = { + url = "github:DreamMaoMao/hycov"; + inputs.hyprland.follows = "hyprland"; + }; + hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; diff --git a/modules/gui/desktop/hyprland/apps/bar.nix b/modules/gui/desktop/hyprland/apps/bar.nix @@ -125,7 +125,7 @@ in rec { "bash" = "Terminal"; "zsh" = "Terminal"; "(.*) - kitty" = "Terminal"; - "nwg-clipman" = "Clipboard"; + "clipse" = "Clipboard"; "nwg-displays" = "Displays"; "Ulauncher(.*)" = "Launcher"; "(.*) - Geany" = "Text Editor"; @@ -144,7 +144,7 @@ in rec { on-click-right = "close"; ignore-list = [ "kitty-dropterm" - "nwg-clipman" + "clipse" "ulauncher" ]; }; diff --git a/modules/gui/desktop/hyprland/apps/default.nix b/modules/gui/desktop/hyprland/apps/default.nix @@ -7,7 +7,7 @@ ... }: with files; let - inherit (lib) getExe mkIf; + inherit (lib) getExe mkIf replaceStrings; inherit (config.gui) wallpaper; inherit (config.lib.stylix) colors; exists = app: builtins.elem app config.apps.list; @@ -33,6 +33,7 @@ in { environment.systemPackages = with pkgs; [ # Apps celluloid + unstable.clipse custom.desktop-icons font-manager geany @@ -41,7 +42,6 @@ in { lollypop mate.atril mission-center - custom.nwg-clipman unstable.nwg-displays unstable.nwg-drawer nwg-wrapper @@ -54,7 +54,6 @@ in { # Utilities custom.hyprutils - cliphist grim unstable.grimblast hyprkeys @@ -70,6 +69,7 @@ in { user = { # Persisted Files persist.directories = [ + ".config/clipse" ".config/geany" ".config/mpv" ".config/nwg-displays" @@ -77,7 +77,6 @@ in { ".config/Thunar" ".local/share/lollypop" ".local/share/shotwell" - ".cache/cliphist" ".cache/shotwell" ]; @@ -135,8 +134,7 @@ in { "dicons" # Clipboard - "wl-paste --type text --watch cliphist store" - "wl-paste --type image --watch cliphist store" + "clipse -listen" # Binds List (with files.hyprland; "nwg-wrapper -t ${binds} -c ${nwg.wrapper} -il 3 -sv 1") @@ -272,6 +270,12 @@ in { # Application Drawer ".config/nwg-drawer/drawer.css".text = hyprland.nwg.drawer; + # Clipboard + ".config/clipse/custom_theme.json".text = + replaceStrings ["@base01" "@base05" "@base07" "@base08" "@base0B" "@base0D" "@base0E" "@base0F"] + (with colors; [base01 base05 base07 base08 base0B base0D base0E base0F]) + hyprland.clipse; + # Wallpaper ".config/hypr/hyprpaper.conf".text = '' splash = true @@ -283,7 +287,7 @@ in { # Text Editor ".config/geany/geany.conf".text = geany.settings; ".config/geany/keybindings.conf".text = geany.keybindings; - ".config/geany/colorschemes/theme.conf".text = geany.catppuccin; + ".config/geany/colorschemes/theme.conf".source = with theme; "${pkgs.custom.geany-catppuccin}/share/geany/colorschemes/${name}-${variant}.conf"; # Terminal ".config/kitty/search".source = pkgs.custom.kitty-search; diff --git a/modules/gui/desktop/hyprland/apps/rules.nix b/modules/gui/desktop/hyprland/apps/rules.nix @@ -9,7 +9,7 @@ _: { ## Window Rules windowrulev2 = [ # Clipboard - "float, title:^(clipman)$" + "float, class:^(clipse)$" # Application Launcher "opacity 0.9 override, class:^(ulauncher)$" diff --git a/modules/gui/desktop/hyprland/settings/keybindings.nix b/modules/gui/desktop/hyprland/settings/keybindings.nix @@ -16,12 +16,6 @@ _: { "$mod, right, movefocus, r" "$mod, up, movefocus, u" "$mod, down, movefocus, d" - - # Window Switcher - "ALT, Tab, cyclenext," - "ALT, Tab, bringactivetotop," - "ALT SHIFT, Tab, cyclenext, prev" - "ALT SHIFT, Tab, bringactivetotop," "ALT CTRL, Tab, focusurgentorlast" "ALT CTRL, Tab, bringactivetotop," diff --git a/modules/gui/desktop/hyprland/settings/plugins.nix b/modules/gui/desktop/hyprland/settings/plugins.nix @@ -15,7 +15,7 @@ in { }; wayland.windowManager.hyprland = { - plugins = with pkgs.wayworld; [hyprexpo Hyprspace]; + plugins = with pkgs.wayworld; [hycov hyprexpo Hyprspace]; extraConfig = let gaps = builtins.toString @@ -32,7 +32,20 @@ in { gesture_positive = false } - # Overview + # Application Overview + hycov { + enable_hotarea = 1 + hotarea_pos = 3 + only_active_workspace = 1 + overview_gappi = 24 + overview_gappo = 60 + enable_gesture = 0 + enable_alt_release_exit = 1 + alt_replace_key = Alt_L + alt_toggle_auto_next = 1 + } + + # Workspace Overview overview { autoDrag = false exitOnClick = true @@ -55,7 +68,15 @@ in { # Expose "$MOD CTRL, TAB, hyprexpo:expo, toggle" - # Overview + # Application Overview + "ALT, Tab, hycov:toggleoverview" + "ALT SHIFT, Tab, hycov:toggleoverview, forceall" + "ALT, left, hycov:movefocus, l" + "ALT, right, hycov:movefocus, r" + "ALT, up, hycov:movefocus, u" + "ALT, down, hycov:movefocus, d" + + # Workspace Overview "$mod, Tab, overview:toggle" "$mod SHIFT, Tab, overview:toggle, all" ]; diff --git a/modules/gui/qt.nix b/modules/gui/qt.nix @@ -1,7 +1,6 @@ { config, lib, - pkgs, ... }: let inherit (lib) mkEnableOption mkIf mkOption types; @@ -23,30 +22,36 @@ in { }; ## QT Configuration ## - config = mkIf cfg.enable { - environment = { - systemPackages = [pkgs.libsForQt5.qtstyleplugin-kvantum cfg.theme.package]; - variables."QT_STYLE_OVERRIDE" = "kvantum"; - etc."xdg/Kvantum/kvantum.kvconfig".text = '' - [General] - Theme=${cfg.theme.name} - ''; - }; - - user.homeConfig = { + config = with cfg.theme; + mkIf cfg.enable { qt = { enable = true; - platformTheme = "qtct"; - style.name = "kvantum"; + platformTheme = "qt5ct"; + style = "kvantum"; }; - xdg.configFile = with cfg.theme; { - "Kvantum/${name}".source = "${package}/share/Kvantum/${name}"; - "Kvantum/kvantum.kvconfig".text = '' + environment = { + systemPackages = [package]; + etc."xdg/Kvantum/kvantum.kvconfig".text = '' [General] - theme=${name} + Theme=${name} ''; }; + + user.homeConfig = { + qt = { + enable = true; + platformTheme = "qtct"; + style.name = "kvantum"; + }; + + xdg.configFile = { + "Kvantum/${name}".source = "${package}/share/Kvantum/${name}"; + "Kvantum/kvantum.kvconfig".text = '' + [General] + theme=${name} + ''; + }; + }; }; - }; } diff --git a/packages/flake.nix b/packages/flake.nix @@ -60,6 +60,7 @@ in { wine = windows.packages."${system}"; wayworld = wayland.packages."${system}" + // hycov.packages."${system}" // hyprspace.packages."${system}" // hyprland-plugins.packages."${system}" // hyprland.packages."${system}"; diff --git a/packages/geany-catppuccin/default.nix b/packages/geany-catppuccin/default.nix @@ -0,0 +1,31 @@ +{ + lib, + pkgs, + ... +}: +with pkgs; let + metadata = import ./metadata.nix; +in + stdenv.mkDerivation { + pname = "geany-catppuccin"; + version = metadata.rev; + + src = fetchFromGitHub { + owner = "catppuccin"; + repo = "geany"; + inherit (metadata) rev sha256; + }; + + dontBuild = true; + installPhase = '' + mkdir -p $out/share/geany/colorschemes/ + cp -r ./src/. $out/share/geany/colorschemes/ + ''; + + meta = with lib; { + description = "Soothing pastel theme for Geany"; + homepage = metadata.repo; + license = licenses.mit; + maintainers = ["maydayv7"]; + }; + } diff --git a/packages/geany-catppuccin/metadata.nix b/packages/geany-catppuccin/metadata.nix @@ -0,0 +1,5 @@ +{ + repo = "https://github.com/catppuccin/geany"; + rev = "ab7c7831dc44dfd442ef2aa0b7e46aafd6ec7c23"; + sha256 = "sha256-OneUwl6n1AU52Gu++IKIcR8VzSnp6Z+x4WSVr6mFnBQ="; +} diff --git a/packages/nwg-clipman.nix b/packages/nwg-clipman.nix @@ -1,49 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; - python310Packages.buildPythonApplication rec { - pname = "nwg-clipman"; - version = "0.2.1"; - - src = fetchFromGitHub { - owner = "nwg-piotr"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-nOLd1GmaXflBAZlx4SVxr6PLbXJrQnNN6yUTpeNUd/E="; - }; - - buildInputs = [gtk3]; - nativeBuildInputs = [ - gobject-introspection - wrapGAppsHook - ]; - - propagatedBuildInputs = [ - atk - gdk-pixbuf - gtk-layer-shell - pango - python310Packages.pygobject3 - cliphist - wl-clipboard - xdg-utils - ]; - - dontWrapGApps = true; - doCheck = false; - preFixup = '' - makeWrapperArgs+=("''${gappsWrapperArgs[@]}"); - ''; - - meta = with lib; { - mainProgram = pname; - homepage = "https://github.com/nwg-piotr/nwg-clipman"; - description = "GTK3-based GUI for cliphist"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = ["maydayv7"]; - }; - }