From 15e6dbaa9e6eeb73f55e74527e9b788a452e740a Mon Sep 17 00:00:00 2001 From: Liam Malone Date: Thu, 6 Nov 2025 12:14:04 +0000 Subject: [PATCH] various changes, fixes, and updates --- configs/dms-darp8/settings.json | 86 ++++- configs/emacs/config.org | 74 ++++- configs/hypr-darp8/hypr-colors.conf | 151 +++++++++ configs/hypr-darp8/hypr-monitors.conf | 4 +- configs/hypr/hyprland.conf | 445 ++++++++++++++------------ hosts/darp8/configuration.nix | 35 +- hosts/darp8/file.nix | 12 +- hosts/darp8/pkgs.nix | 14 +- 8 files changed, 566 insertions(+), 255 deletions(-) create mode 100644 configs/hypr-darp8/hypr-colors.conf diff --git a/configs/dms-darp8/settings.json b/configs/dms-darp8/settings.json index ab580fe..701b229 100644 --- a/configs/dms-darp8/settings.json +++ b/configs/dms-darp8/settings.json @@ -2,16 +2,19 @@ "currentThemeName": "dynamic", "customThemeFile": "", "matugenScheme": "scheme-fidelity", + "runUserMatugenTemplates": true, + "matugenTargetMonitor": "", "dankBarTransparency": 0, "dankBarWidgetTransparency": 1, "popupTransparency": 1, "dockTransparency": 1, "use24HourClock": true, + "showSeconds": false, "useFahrenheit": false, "nightModeEnabled": false, "weatherLocation": "Dublin, Leinster", "weatherCoordinates": "53.3493795,-6.2605593", - "useAutoLocation": false, + "useAutoLocation": true, "weatherEnabled": true, "showLauncherButton": true, "showWorkspaceSwitcher": true, @@ -76,22 +79,29 @@ } ], "showWorkspaceIndex": false, + "workspaceScrolling": false, "showWorkspacePadding": false, "showWorkspaceApps": false, "maxWorkspaceIcons": 3, - "workspacesPerMonitor": true, + "workspacesPerMonitor": false, + "dwlShowAllTags": false, "workspaceNameIcons": {}, "waveProgressEnabled": true, "clockCompactMode": false, "focusedWindowCompactMode": false, "runningAppsCompactMode": true, + "keyboardLayoutNameCompactMode": true, "runningAppsCurrentWorkspace": true, + "runningAppsGroupByApp": false, "clockDateFormat": "", "lockDateFormat": "", "mediaSize": 1, "dankBarLeftWidgets": [ "launcherButton", - "workspaceSwitcher", + { + "id": "workspaceSwitcher", + "enabled": true + }, "focusedWindow" ], "dankBarCenterWidgets": [ @@ -109,24 +119,36 @@ ], "appLauncherViewMode": "list", "spotlightModalViewMode": "grid", - "networkPreference": "auto", + "sortAppsAlphabetically": false, + "networkPreference": "wifi", + "vpnLastConnected": "", "iconTheme": "System Default", - "useOSLogo": false, - "osLogoColorOverride": "", - "osLogoBrightness": 0.5, - "osLogoContrast": 1, + "launcherLogoMode": "compositor", + "launcherLogoCustomPath": "", + "launcherLogoColorOverride": "surface", + "launcherLogoColorInvertOnMode": false, + "launcherLogoBrightness": 0.44, + "launcherLogoContrast": 1, + "launcherLogoSizeOffset": 0, "fontFamily": "FiraCode Nerd Font Med", "monoFontFamily": "Fira Code", "fontWeight": 400, "fontScale": 1, + "dankBarFontScale": 1, "notepadUseMonospace": true, "notepadFontFamily": "", "notepadFontSize": 14, "notepadShowLineNumbers": true, "notepadTransparencyOverride": -1, "notepadLastCustomTransparency": 0.7, + "soundsEnabled": true, + "useSystemSoundTheme": false, + "soundNewNotification": true, + "soundVolumeChanged": true, + "soundPluggedIn": true, "gtkThemingEnabled": false, "qtThemingEnabled": false, + "syncModeWithPortal": true, "showDock": false, "dockAutoHide": false, "dockGroupByApp": false, @@ -134,6 +156,8 @@ "dockPosition": 1, "dockSpacing": 4, "dockBottomGap": 0, + "dockIconSize": 40, + "dockIndicatorStyle": "circle", "cornerRadius": 10, "notificationOverlayEnabled": false, "dankBarAutoHide": false, @@ -145,16 +169,56 @@ "dankBarSquareCorners": false, "dankBarNoBackground": false, "dankBarGothCornersEnabled": false, + "dankBarBorderEnabled": false, + "dankBarBorderColor": "surfaceText", + "dankBarBorderOpacity": 1, + "dankBarBorderThickness": 1, + "popupGapsAuto": true, + "popupGapsManual": 4, "dankBarPosition": 0, "lockScreenShowPowerActions": true, + "enableFprint": false, + "maxFprintTries": 3, "hideBrightnessSlider": false, "widgetBackgroundColor": "sch", "surfaceBase": "s", + "wallpaperFillMode": "Fill", + "blurredWallpaperLayer": false, + "blurWallpaperOnOverview": false, "notificationTimeoutLow": 5000, "notificationTimeoutNormal": 5000, "notificationTimeoutCritical": 0, "notificationPopupPosition": 0, - "screenPreferences": {}, - "pluginSettings": {}, - "animationSpeed": 2 + "osdAlwaysShowValue": false, + "powerActionConfirm": true, + "customPowerActionLock": "", + "customPowerActionLogout": "", + "customPowerActionSuspend": "", + "customPowerActionHibernate": "", + "customPowerActionReboot": "", + "customPowerActionPowerOff": "", + "updaterUseCustomCommand": false, + "updaterCustomCommand": "", + "updaterTerminalAdditionalParams": "", + "screenPreferences": { + "dankBar": [ + "all" + ] + }, + "showOnLastDisplay": {}, + "animationSpeed": 2, + "customAnimationDuration": 500, + "acMonitorTimeout": 600, + "acLockTimeout": 300, + "acSuspendTimeout": 900, + "acHibernateTimeout": 900, + "batteryMonitorTimeout": 0, + "batteryLockTimeout": 0, + "batterySuspendTimeout": 0, + "batteryHibernateTimeout": 0, + "lockBeforeSuspend": true, + "loginctlLockIntegration": true, + "launchPrefix": "", + "brightnessDevicePins": {}, + "configVersion": 1 } \ No newline at end of file diff --git a/configs/emacs/config.org b/configs/emacs/config.org index 1e07bf5..229c6ad 100644 --- a/configs/emacs/config.org +++ b/configs/emacs/config.org @@ -44,6 +44,7 @@ - [[#enabling-table-of-contents][Enabling table of contents]] - [[#enabling-org-bullets][Enabling org bullets]] - [[#source-code-block-tag-expansion][SOURCE CODE BLOCK TAG EXPANSION]] + - [[#pdf-links][Pdf links]] - [[#which-key][WHICH-KEY]] * IMPORTANT PROGRAMS TO LOAD FIRST @@ -117,8 +118,6 @@ #+begin_src emacs-lisp ;; Expands to: (elpaca evil (use-package evil :demand t)) (use-package evil - :bind (:map evil-normal-state-map - ("" . evil-scroll-page-up)) :init ;; tweak evil's configuration before loading it (setq evil-want-integration t) ;; This is optional since it's already set to t by default. (setq evil-respect-visual-line-mode t) @@ -131,6 +130,8 @@ :config (setq evil-collection-mode-list '(dashboard dired ibuffer)) (evil-collection-init)) + ;; set C-u for scrolling up... not sure why this has to be manual + (global-set-key (kbd "C-u") 'evil-scroll-up) #+end_src @@ -187,6 +188,7 @@ (lm/leader-keys "t" '(:ignore t :wk "Toggle") + "t n" '(tab-bar-new-tab :wk "New tab") "t l" '(display-line-numbers-mode :wk "Toggle line numbers") "t i" '(org-toggle-inline-images :wk "Toggle inline images") "t t" '(visual-line-mode :wk "Toggle truncated lines")) @@ -469,7 +471,7 @@ Pulse highlight a line on certain actions #+begin_src emacs-lisp (use-package pulse :ensure nil - :defer + :defer nil :init (defun pulse-line (&rest _) "pulse the current line" @@ -482,14 +484,61 @@ Pulse highlight a line on certain actions windmove-up windmove-down move-to-window-line-top-bottom + other-window recenter-top-bottom - other-window)) - (advice-add command :after #'pulse-line))) + evil-scroll-up + evil-scroll-down + evil-scroll-page-up + evil-scroll-page-down + )) + (advice-add command :after #'pulse-line)) + + (setq pulse-flag t) + (global-set-key (kbd "M-p") (lambda () + (interactive) + (pulse-line)))) ;; (global-set-key (kbd "M-p") 'pulse-line) #+end_src * PDF TOOLS #+begin_src emacs-lisp - (use-package pdf-tools) + (use-package pdf-tools + :defer t + :config + (pdf-tools-install) + (setq-default pdf-view-display-size 'fit-page) + :bind (:map pdf-view-mode + ("\\" . hydra-pdftools/body) + ("" . pdf-view-scroll-down-or-next-page) + ("g" . pdf-view-first-page) + ("G" . pdf-view-last-page) + ("l" . image-forward-hscroll) + ("h" . image-backward-hscroll) + ("j" . pdf-view-next-page) + ("k" . pdf-view-previous-page) + ("e" . pdf-view-goto-page) + ("u" . pdf-view-revert-buffer) + ("al" . pdf-annot-list-annotations) + ("ad" . pdf-annot-delete) + ("aa" . pdf-annot-attachment-dired) + ("am" . pdf-annot-add-markup-annotation) + ("at" . pdf-annot-add-text-annotation) + ("y" . pdf-view-kill-ring-save) + ("i" . pdf-misc-display-metadata) + ("s" . pdf-occur) + ("b" . pdf-view-set-slice-from-bounding-box) + ("r" . pdf-view-reset-slice))) + + (use-package org-pdfview + :config + (add-to-list 'org-file-apps + '("\\.pdf\\'" . (lambda (file link) + (org-pdfview-open link))))) + + (with-eval-after-load 'pdf-view + (define-key pdf-view-mode-map (kbd "j") #'pdf-view-next-page) + (define-key pdf-view-mode-map (kbd "k") #'pdf-view-previous-page) + (define-key pdf-view-mode-map (kbd "C-j") #'pdf-view-next-line-or-next-page) + (define-key pdf-view-mode-map (kbd "C-k") #'pdf-view-previous-line-or-previous-page)) #+end_src @@ -607,6 +656,7 @@ Making the ui look nicer ;; (setq display-line-numbers-mode-relative 't) (global-visual-line-mode t) + (column-number-mode) #+end_src * IVY (COUNSEL) @@ -650,7 +700,9 @@ Making the ui look nicer :config (ivy-set-display-transformer 'ivy-switch-buffer 'ivy-rich-switch-buffer-transformer)) - + (with-eval-after-load 'ivy + (define-key ivy-minibuffer-map (kbd "C-k") #'ivy-previous-line) + (define-key ivy-minibuffer-map (kbd "C-j") #'ivy-next-line)) #+end_src * LANGUAGE SUPPORT @@ -706,6 +758,14 @@ Org-tempo is not a separate package but a module within org that can be enabled. #+begin_src emacs-lisp (require 'org-tempo) #+end_src +** Pdf links +#+begin_src emacs-lisp +;; (eval-after-load 'org '(require 'org-pdfview)) +;; +;; (add-to-list 'org-file-apps +;; '("\\.pdf\\'" . (lambda (file link) +;; (org-pdfview-open link)))) +#+end_src emacs-lisp * WHICH-KEY diff --git a/configs/hypr-darp8/hypr-colors.conf b/configs/hypr-darp8/hypr-colors.conf new file mode 100644 index 0000000..0adecdd --- /dev/null +++ b/configs/hypr-darp8/hypr-colors.conf @@ -0,0 +1,151 @@ + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$background = rgba(131314ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$error = rgba(ffb4abff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$error_container = rgba(93000aff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$inverse_on_surface = rgba(303031ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$inverse_primary = rgba(55606aff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$inverse_surface = rgba(e4e2e2ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_background = rgba(e4e2e2ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_error = rgba(690005ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_error_container = rgba(ffdad6ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_primary = rgba(27323bff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_primary_container = rgba(3a444eff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_primary_fixed = rgba(121d25ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_primary_fixed_variant = rgba(3d4852ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_secondary = rgba(2d3135ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_secondary_container = rgba(e1e4e9ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_secondary_fixed = rgba(181c20ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_secondary_fixed_variant = rgba(43474bff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_surface = rgba(e4e2e2ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_surface_variant = rgba(c4c7cbff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_tertiary = rgba(3e2d21ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_tertiary_container = rgba(523f32ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_tertiary_fixed = rgba(27180dff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$on_tertiary_fixed_variant = rgba(564336ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$outline = rgba(8e9195ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$outline_variant = rgba(44474bff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$primary = rgba(f3f8ffff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$primary_container = rgba(d1dce8ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$primary_fixed = rgba(d9e4f0ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$primary_fixed_dim = rgba(bdc8d3ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$scrim = rgba(000000ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$secondary = rgba(c4c7ccff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$secondary_container = rgba(46494eff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$secondary_fixed = rgba(e0e3e8ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$secondary_fixed_dim = rgba(c4c7ccff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$shadow = rgba(000000ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$source_color = rgba(d1dce8ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface = rgba(131314ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_bright = rgba(39393aff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_container = rgba(1f2020ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_container_high = rgba(2a2a2bff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_container_highest = rgba(353535ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_container_low = rgba(1b1b1cff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_container_lowest = rgba(0e0e0fff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_dim = rgba(131314ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_tint = rgba(bdc8d3ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$surface_variant = rgba(44474bff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$tertiary = rgba(fff5f0ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$tertiary_container = rgba(f2d5c3ff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$tertiary_fixed = rgba(faddcbff) + +$image = /home/liamm/pictures/wallpapers/anime-girl-snipers.jpg +$tertiary_fixed_dim = rgba(ddc1b0ff) + diff --git a/configs/hypr-darp8/hypr-monitors.conf b/configs/hypr-darp8/hypr-monitors.conf index bf60fe9..1e110e0 100644 --- a/configs/hypr-darp8/hypr-monitors.conf +++ b/configs/hypr-darp8/hypr-monitors.conf @@ -1,3 +1,3 @@ -monitor=eDP-1,1920x1080@60,0x0,1 -monitor=HDMI-A-1,2560x1440@144,auto,1,mirror,eDP-1 +monitor=eDP-1,1920x1080@60,auto,1 +monitor=HDMI-A-1,2560x1440@144,0x0,1 monitor=,preferred,auto,1,mirror,eDP-1 diff --git a/configs/hypr/hyprland.conf b/configs/hypr/hyprland.conf index fe6488d..5273e0a 100644 --- a/configs/hypr/hyprland.conf +++ b/configs/hypr/hyprland.conf @@ -6,9 +6,7 @@ exec-once= dms run # DankShell # Monitors -monitor=eDP-1,1920x1080@60,0x0,1 -monitor=HDMI-A-1,2560x1440@144,auto,1,mirror,eDP-1 -monitor=,preferred,auto,1,mirror,eDP-1 +source = ./hypr-monitors.conf # Environment @@ -22,24 +20,9 @@ env=XCURSOR_THEME,Bibata-Modern-Ice env=XCURSOR_SIZE,24 # Colors -$green=rgb(00BB00) -$gray=rgb(555555) -$purple=rgb(BB00BB) -$lavendar=rgb(B39DF3) -$orange=rgb(F39660) - -$lightgreen=rgb(93C863) -$lightblue=rgb(76CCE0) - -$magenta=rgba(881798FF) -$crimson=rgba(471520FF) - - -# USED COLORS -$active_border=$lightgreen -$inactive_border=$gray -# $expo_bg=$active_border +source = ./hypr-colors.conf +# Settings animations { bezier=myBezier, 0.05, 0.9, 0.1, 1.05 @@ -66,7 +49,7 @@ decoration { } shadow { - color=rgba(1a1a1aee) + color=$shadow enabled=true range=4 render_power=3 @@ -90,8 +73,8 @@ experimental { general { border_size=2 - col.active_border=$active_border - col.inactive_border=$inactive_border + col.active_border=$primary_container + col.inactive_border=$secondary_container gaps_in=2 gaps_out=4 layout=dwindle @@ -124,217 +107,261 @@ misc { mouse_move_enables_dpms=true } -# Plugin Config - -# plugin { -# hyprexpo { -# columns = 3 -# gap_size = 3 -# bg_col = $expo_bg -# workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 -# -# enable_gesture = true # laptop touchpad -# gesture_fingers = 3 # 3 or 4 -# gesture_distance = 300 # how far is the "max" -# gesture_positive = false # true = swipe down, false = swipe up. -# } -# } # Window Rules -windowrule = idleinhibit fullscreen, class:firefox -windowrule = idleinhibit fullscreen, class:floorp -windowrule = idleinhibit fullscreen, class:ghostty -windowrule = idleinhibit focus, class:firefox -windowrule = idleinhibit focus, class:floorp -windowrule = idleinhibit focus, class:mpv -windowrule = idleinhibit focus, class:^(emacs)$ -windowrule = idleinhibit focus, class:^(Emacs)$ -windowrule = idleinhibit focus, class:^(discord)$ -windowrule = idleinhibit focus, class:^(spotify)$ -windowrule = idleinhibit focus, class:^(Discord|discord)$ -windowrule = opacity 0.98 0.9, class:^(Discord|discord)$ -windowrule = float, class:polkit-kde-authentication-agent-1 -windowrule = float, class:^(praat)$ -windowrule = float, class:^(network)$ -windowrule = float, class:^(nm-)$ -windowrule = float, class:^(Network)$ -windowrule = float, class:Rofi -windowrule = float, class:Gimp -windowrule = float, class:Nautilus -windowrule = float, title:^(LmDev-.*)$ -windowrule = float, class:notification -windowrule = float, class:^(Genymotion Player)$ -windowrule = float, class:^(launcher)$ -windowrule = tile, class:Spotify -windowrule = tile, title:Minecraft -windowrule = workspace 2, class:KeePassXC -windowrule = workspace 3, class:firefox -windowrule = workspace 3, class:floorp -windowrule = workspace 4, class:Spotify -windowrule = workspace 6, class:discord -windowrule = workspace 6, class:Signal -windowrule = workspace 10, title:Minecraft +# Rule :: Window +$ws_game = 1 +$ws_shell = 2 +$ws_web = 3 +$ws_music = 4 +$ws_image = 5 +$ws_chat = 6 +$ws_audio = 7 +$ws_video = 8 +$ws_program = 9 +$ws_extra = 0 + +$idleInhibFs = idleinhibit fullscreen +$idleInhibFo = idleinhibit focus +$ws = workspace + + windowrule = $idleInhibFs, class:^(floorp)$ + windowrule = $idleInhibFs, class:^(firefox)$ + windowrule = $idleInhibFs, class:^(ghostty)$ + windowrule = $idleInhibFs, class:^(brave-browser)$ + + windowrule = $idleInhibFo, class:^(mpv)$ + windowrule = $idleInhibFo, class:^(firefox)$ + windowrule = $idleInhibFo, class:^(floorp)$ + windowrule = $idleInhibFo, class:^(spotify)$ + windowrule = $idleInhibFo, class:^(Emacs|emacs)$ + windowrule = $idleInhibFo, class:^(brave-browser)$ + windowrule = $idleInhibFo, class:^(Discord|discord)$ + + windowrule = opacity 0.98 0.90, class:^(Discord|discord)$ + windowrule = opacity 0.96 0.90, class:^(Emacs|emacs)$ + + windowrule = float, class:^(polkit.*agent.*)$ + windowrule = float, class:^(praat)$ + windowrule = float, class:^(network)$ + windowrule = float, class:^(nm-)$ + windowrule = float, class:^(Network)$ + windowrule = float, class:^(Rofi)$ + windowrule = float, class:^(Gimp)$ + windowrule = float, class:^(thunar)$ + windowrule = float, class:^(Nautilus)$ + windowrule = float, title:^(LmDev-.*)$ + windowrule = float, class:^(notification)$ + windowrule = float, class:^(Genymotion Player)$ + windowrule = float, class:^(launcher)$ + + windowrule = tile, class:^(Spotify)$ + windowrule = tile, title:^(Minecraft)$ + + windowrule = $ws $ws_shell, class:^(KeePassXC)$ + windowrule = $ws $ws_web, class:^(firefox)$ + windowrule = $ws $ws_web, class:^(floorp)$ + windowrule = $ws $ws_web, class:^(brave-browser)$ + windowrule = $ws $ws_music, class:^(Spotify)$ + windowrule = $ws $ws_chat, class:^(discord)$ + windowrule = $ws $ws_chat, class:^(Signal)$ + windowrule = $ws $ws_video, class:^(.*obs.*)$ + windowrule = $ws $ws_game, title:^(Minecraft)$ + +# Commands +# :Alias: :Command: + +$lock = dms ipc call lock lock +$screenshot = grimblast --cursor copy output +$screenshotarea = hyprctl keyword animation 'fadeOut,0,0,default'; grimblast copy area; hyprctl keyword animation 'fadeOut,1,4,default' + +$colorpick = hyprpicker -a -f hex +$emacs = emacsclient -c -a 'emacs' +$discord = discord --enable-blink-features=MiddleClickAutoscroll # Binds -$altMod=ALT -$ctrlMod=CTRL -# $lock=hyprlock -$lock=dms ipc call lock lock -$mainMod=SUPER -$screenshotarea=hyprctl keyword animation 'fadeOut,0,0,default'; grimblast copy area; hyprctl keyword animation 'fadeOut,1,4,default' +# Binds :: Modifiers +$none = + +$altMod = ALT +$mainMod = SUPER + +$noneCtrl = $none CTRL +$altCtrl = $altMod CTRL +$mainCtrl = $mainMod CTRL + +$noneShift = $none SHIFT +$altShift = $altMod SHIFT +$mainShift = $mainMod SHIFT + +$altCtrlShift = $altCtrl SHIFT +$noneCtrlShift = $noneCtrl SHIFT +$mainCtrlShift = $mainCtrl SHIFT # Binds :: Programs -bind=$altMod, Return, exec, ghostty -bind=$altMod SHIFT, Return, exec, foot -bind=$mainMod SHIFT, D, exec, discord --enable-blink-features=MiddleClickAutoscroll -bind=$mainMod SHIFT, E, exec, emacsclient -c -a 'emacs' -bind=$mainMode SHIFT, F, exec, focus-linux -bind=$mainMod, Space, exec, dms ipc call spotlight toggle -bind=$mainMod, E, exec, thunar -bind=$mainMod, S, exec, spotify -bind=$mainMod, P, exec, hyprpicker -a -f hex -bind=, Print, exec, $screenshotarea -bind=SHIFT, Print, exec, grimblast --cursor copy output -bind=$mainMod, X, exec, dms ipc call powermenu toggle -bind=$mainMod SHIFT, P, pseudo, -bind=$mainMod, C, killactive, -bind=$mainMod SHIFT, F, togglefloating, -bind=$mainMod SHIFT, S, togglesplit, -bind=$mainMod CTRL, Q, exec, $lock -bind=$mainMod, F4, exit, -bind = SUPER, M, exec, dms ipc call processlist toggle -bind = $mainMod, I, exec, dms ipc call settings toggle -bind = $mainMod CTRL, P, exec, dms ipc call notepad toggle -bind = $mainMod CTRL, C, exec, dms ipc call control-center toggle +#:Bind: :Modifier: :Key: :Command: :Args: + bind = $altMod, Return, exec, ghostty + bind = $altShift, Return, exec, foot + bind = $mainShift, D, exec, $discord + bind = $mainShift, S, exec, signal-desktop + bind = $mainShift, E, exec, $emacs + bind = $mainMod, E, exec, thunar + bind = $mainMod, S, exec, spotify + bind = $mainMod, P, exec, $colorpick -# Night mode toggle -bind=$mainMod, N, exec, dms ipc call notifications toggle -bind=$mainMod SHIFT, N, exec, dms ipc call night toggle - -# bind = SUPER, grave, hyprexpo:expo, toggle # Commented out cos "version mismatch (bs)" + bind = $none, Print, exec, $screenshotarea + bind = $noneShift, Print, exec, $screenshot + bind = $mainMod, Space, exec, dms ipc call spotlight toggle + bind = $mainMod, X, exec, dms ipc call powermenu toggle + bind = $mainMod, M, exec, dms ipc call processlist toggle + bind = $mainMod, I, exec, dms ipc call settings toggle + bind = $mainMod, V, exec, dms ipc call clipboard toggle + bind = $mainCtrl, P, exec, dms ipc call notepad toggle + bind = $mainCtrl, C, exec, dms ipc call control-center toggle + bind = $mainMod, N, exec, dms ipc call notifications toggle + bind = $mainShift, N, exec, dms ipc call night toggle + bind = $mainCtrl, B, exec, dms ipc call bar toggle + + bind = $mainShift, P, pseudo, + bind = $mainMod, C, killactive, + bind = $mainMod, F, togglefloating, + bind = $mainShift, F, fullscreen + bind = $mainCtrl, S, togglesplit, + bind = $mainMod, right, resizeactive, 10 0 + bind = $mainMod, left, resizeactive, -10 0 + bind = $mainMod, up, resizeactive, 0 -10 + bind = $mainMod, down, resizeactive, 0 10 + bind = $mainCtrl, L, exec, $lock + bind = $mainCtrl, Q, exec, $lock + bind = $mainMod, F4, exit, # Binds :: Navigation -bind=$mainMod, F, fullscreen, -bind=$mainMod, H, movefocus, l -bind=$mainMod, L, movefocus, r -bind=$mainMod, K, movefocus, u -bind=$mainMod, J, movefocus, d -bind=$mainMod, comma, focusmonitor, -1 -bind=$mainMod, period, focusmonitor, +1 -bind=$mainMod SHIFT, H, movewindow, l -bind=$mainMod SHIFT, L, movewindow, r -bind=$mainMod SHIFT, K, movewindow, u -bind=$mainMod SHIFT, J, movewindow, d -bind=$mainMod SHIFT, comma, movecurrentworkspacetomonitor, -1 -bind=$mainMod SHIFT, period, movecurrentworkspacetomonitor, +1 -bind=$mainMod, right, resizeactive, 10 0 -bind=$mainMod, left, resizeactive, -10 0 -bind=$mainMod, up, resizeactive, 0 -10 -bind=$mainMod, down, resizeactive, 0 10 -bind=$mainMod, 1, workspace, 1 -bind=$mainMod, 2, workspace, 2 -bind=$mainMod, 3, workspace, 3 -bind=$mainMod, 4, workspace, 4 -bind=$mainMod, 5, workspace, 5 -bind=$mainMod, 6, workspace, 6 -bind=$mainMod, 7, workspace, 7 -bind=$mainMod, 8, workspace, 8 -bind=$mainMod, 9, workspace, 9 -bind=$mainMod, 0, workspace, 10 -bind=$mainMod SHIFT, 1, movetoworkspace, 1 -bind=$mainMod SHIFT, 2, movetoworkspace, 2 -bind=$mainMod SHIFT, 3, movetoworkspace, 3 -bind=$mainMod SHIFT, 4, movetoworkspace, 4 -bind=$mainMod SHIFT, 5, movetoworkspace, 5 -bind=$mainMod SHIFT, 6, movetoworkspace, 6 -bind=$mainMod SHIFT, 7, movetoworkspace, 7 -bind=$mainMod SHIFT, 8, movetoworkspace, 8 -bind=$mainMod SHIFT, 9, movetoworkspace, 9 -bind=$mainMod SHIFT, 0, movetoworkspace, 10 -bind=$mainMod SHIFT CTRL, right, movetoworkspace, +1 -bind=$mainMod SHIFT CTRL, left, movetoworkspace, -1 -bind=$mainMod, mouse_down, workspace, e+1 -bind=$mainMod, mouse_up, workspace, e-1 -bind=$mainMod, Tab, workspace, e+1 -bind=$mainMod SHIFT, Tab, workspace, e-1 -bind=$mainMod CTRL, right, workspace, +1 -bind=$mainMod CTRL, left, workspace, -1 +#:Bind: :Modifier: :Key: :Command: :Args: + bind = $mainMod, H, movefocus, l + bind = $mainMod, L, movefocus, r + bind = $mainMod, K, movefocus, u + bind = $mainMod, J, movefocus, d + bind = $mainMod, comma, focusmonitor, -1 + bind = $mainMod, period, focusmonitor, +1 + bind = $mainShift, H, movewindow, l + bind = $mainShift, L, movewindow, r + bind = $mainShift, K, movewindow, u + bind = $mainShift, J, movewindow, d + bind = $mainShift, comma, movecurrentworkspacetomonitor, -1 + bind = $mainShift, period, movecurrentworkspacetomonitor, +1 + + bind = $mainMod, $ws_game, workspace, $ws_game + bind = $mainMod, $ws_shell, workspace, $ws_shell + bind = $mainMod, $ws_web, workspace, $ws_web + bind = $mainMod, $ws_music, workspace, $ws_music + bind = $mainMod, $ws_image, workspace, $ws_image + bind = $mainMod, $ws_chat, workspace, $ws_chat + bind = $mainMod, $ws_audio, workspace, $ws_audio + bind = $mainMod, $ws_video, workspace, $ws_video + bind = $mainMod, $ws_program, workspace, $ws_program + bind = $mainMod, $ws_extra, workspace, name:extra + + bind = $mainShift, $ws_game, movetoworkspace, $ws_game + bind = $mainShift, $ws_shell, movetoworkspace, $ws_shell + bind = $mainShift, $ws_web, movetoworkspace, $ws_web + bind = $mainShift, $ws_music, movetoworkspace, $ws_music + bind = $mainShift, $ws_image, movetoworkspace, $ws_image + bind = $mainShift, $ws_chat, movetoworkspace, $ws_chat + bind = $mainShift, $ws_audio, movetoworkspace, $ws_audio + bind = $mainShift, $ws_video, movetoworkspace, $ws_video + bind = $mainShift, $ws_program, movetoworkspace, $ws_program + bind = $mainShift, $ws_extra, movetoworkspace, name:extra + + bind = $mainCtrlShift, right, movetoworkspace, +1 + bind = $mainCtrlShift, left, movetoworkspace, -1 + + bind = $mainMod, mouse_down, workspace, e+1 + bind = $mainMod, mouse_up, workspace, e-1 + bind = $mainMod, Tab, workspace, e+1 + bind = $mainShift, Tab, workspace, e-1 + bind = $mainCtrl, right, workspace, +1 + bind = $mainCtrl, left, workspace, -1 + bindm = $mainMod, mouse:272, movewindow + bindm = $mainMod, mouse:273, resizewindow -bindm=$mainMod, mouse:272, movewindow -bindm=$mainMod, mouse:273, resizewindow # Binds :: MultiMedia -bindl=, XF86AudioPlay, exec, playerctl play-pause -bindl=, XF86AudioNext, exec, playerctl next -bindl=, XF86AudioPrev, exec, playerctl previous + bindl = $none, XF86AudioPlay, exec, playerctl play-pause + bindl = $none, XF86AudioNext, exec, playerctl next + bindl = $none, XF86AudioPrev, exec, playerctl previous + + bindl = $none, XF86AudioMute, exec, dms ipc call audio mute + bindl = $none, XF86AudioMicMute, exec, dms ipc call audio micmute + bindle = $none, XF86AudioRaiseVolume, exec, dms ipc call audio increment 3 + bindle = $none, XF86AudioLowerVolume, exec, dms ipc call audio decrement 3 + + bindle = $none, XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 "" + bindle = $none, XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 "" -bindl=, XF86AudioMute, exec, dms ipc call audio mute -bindl=, XF86AudioMicMute, exec, dms ipc call audio micmute -bindle=, XF86AudioRaiseVolume, exec, dms ipc call audio increment 3 -bindle=, XF86AudioLowerVolume, exec, dms ipc call audio decrement 3 +# Binds :: Submap -bindle=, XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 "" -bindle=, XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 "" +# Binds :: Submap :: Resize + bind = $mainMod, R, submap, resize -# Binds :: Submaps + submap = resize -bind = $mainMod, R, submap, resize -submap = resize -bind=, escape,submap,reset + bind = $none, escape, submap, reset + + binde = $none, left, resizeactive, -10 0 + bindr = $none, left, submap, reset + binde = $none, right, resizeactive, 10 0 + bindr = $none, right, submap, reset + binde = $none, up, resizeactive, 0 10 + bindr = $none, up, submap, reset + binde = $none, down, resizeactive, 0 -10 + bindr = $none, down, submap, reset + + binde = $none, H, resizeactive, -10 0 + bindr = $none, H, submap, reset + binde = $none, J, resizeactive, 0 -10 + bindr = $none, J, submap, reset + binde = $none, K, resizeactive, 0 10 + bindr = $none, K, submap, reset + binde = $none, L, resizeactive, 10 0 + bindr = $none, L, submap, reset + + submap=reset -binde=, left, resizeactive, -10 0 -bindr=, left, submap, reset -binde=, right, resizeactive, 10 0 -bindr=, right, submap, reset -binde=, up, resizeactive, 0 10 -bindr=, up, submap, reset -binde=, down, resizeactive, 0 -10 -bindr=, down, submap, reset +# Binds :: Submap :: Browser + bind = $mainMod, B, submap, browser -binde=, H, resizeactive, -10 0 -bindr=, H, submap, reset -binde=, J, resizeactive, 0 -10 -bindr=, J, submap, reset -binde=, K, resizeactive, 0 10 -bindr=, K, submap, reset -binde=, L, resizeactive, 10 0 -bindr=, L, submap, reset + submap = browser + + bind = $none, B, exec, brave + bindr = $none, B, submap, reset + + bind = $noneShift, F, exec, firefox + bindr = $noneShift, F, submap, reset + + bind = $none, F, exec, floorp + bindr = $none, F, submap, reset + + bind = $none, escape, submap, reset + submap = reset -submap=reset - -bind = $mainMod, B, submap, browser_select -submap = browser_select - -bind =, B, exec, brave -bind =, B, submap, reset - -bind = SHIFT, F, exec, firefox -bind = SHIFT, F, submap, reset - -bind =, F, exec, floorp -bind =, F, submap, reset - -bind =, C, exec, floorp -p limalone -no-remote -bind =, C, submap, reset - -bind=, escape,submap,reset -submap=reset - -bind = $mainMod SHIFT, V, submap, video_stuff -submap = video_stuff -bind = , O, exec, obs -bind = , O, submap, reset -bind = , V, exec , kdenlive -bind = , V, submap, reset - -bind=, escape,submap,reset -submap = reset +# Binds :: Submap :: Video + bind = $mainShift, V, submap, video + submap = video + + bind = $none, O, exec, obs + bindr = $none, O, submap, reset + + bind = $none, V, exec, kdenlive + bindr = $none, V, submap, reset + + bind = $none, escape, submap, reset + submap = reset # Gestures diff --git a/hosts/darp8/configuration.nix b/hosts/darp8/configuration.nix index 2e96df1..a9b2b5e 100644 --- a/hosts/darp8/configuration.nix +++ b/hosts/darp8/configuration.nix @@ -1,10 +1,5 @@ { cfg, config, lib, pkgs, inputs, ... }: -let - hyprplugins = { - # hyprexpo_dir = "${pkgs.hyprlandPlugins.hyprexpo}"; - }; -in { imports = [ ./hardware-configuration.nix @@ -23,7 +18,7 @@ in networkmanager = { enable = true; - wifi.backend = "iwd"; + # wifi.backend = "iwd"; }; firewall = { @@ -40,13 +35,15 @@ in allowPing = true; }; - wireless.iwd = { - enable = true; - settings = { - IPv6.Enabled = true; - Settings.Autoconnect = true; - }; - }; + # wireless.iwd = { + # enable = true; + # settings = { + # driverQuirks.defaultInterface = "wlan0"; + # IPv6.Enabled = true; + # Settings.Autoconnect = true; + # General.EnableNetworkConfiguration = true; + # }; + # }; }; time.timeZone = "Europe/Dublin"; @@ -62,7 +59,7 @@ in addons = with pkgs; [ fcitx5-mozc fcitx5-gtk - fcitx5-chinese-addons + qt6Packages.fcitx5-chinese-addons ]; }; }; @@ -87,18 +84,16 @@ in }; }; }; - udev = { - packages = [ pkgs.android-udev-rules ]; - }; + auto-cpufreq.enable = true; libinput.enable = true; blueman.enable = true; gvfs.enable = true; - auto-cpufreq.enable = true; thermald.enable = true; power-profiles-daemon.enable = false; pulseaudio.enable = false; + # tailscale.enable = true; upower.enable = true; }; @@ -129,7 +124,7 @@ in noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif - noto-fonts-emoji + noto-fonts-color-emoji liberation_ttf fira-code-symbols mplus-outline-fonts.githubRelease @@ -207,7 +202,7 @@ in home-manager = { useGlobalPkgs = true; - extraSpecialArgs = { inherit inputs; inherit cfg; inherit hyprplugins; }; + extraSpecialArgs = { inherit inputs; inherit cfg; }; users = { "${cfg.username}" = import ./home.nix; }; diff --git a/hosts/darp8/file.nix b/hosts/darp8/file.nix index f39176d..f5189f0 100644 --- a/hosts/darp8/file.nix +++ b/hosts/darp8/file.nix @@ -22,10 +22,20 @@ in # Configs ".config/hypr" = { - source = ../../configs/hypr-darp8; + source = ../../configs/hypr; outOfStoreSymlink = true; recursive = true; }; + ".config/hypr/hypr-monitors.conf" = { + source = ../../configs/hypr-darp8/hypr-monitors.conf; + outOfStoreSymlink = true; + recursive = false; + }; + ".config/hypr/hypr-colors.conf" = { + source = ../../configs/hypr-darp8/hypr-colors.conf; + outOfStoreSymlink = true; + recursive = false; + }; ".config/DankMaterialShell" = { source = ../../configs/dms-darp8; outOfStoreSymlink = true; diff --git a/hosts/darp8/pkgs.nix b/hosts/darp8/pkgs.nix index e6c408c..a5e5420 100644 --- a/hosts/darp8/pkgs.nix +++ b/hosts/darp8/pkgs.nix @@ -48,8 +48,7 @@ pavucontrol powertop prismlauncher - protonvpn-cli - pywal + protonvpn-gui qbittorrent signal-desktop slurp @@ -122,9 +121,10 @@ git = { enable = true; lfs.enable = true; - diff-so-fancy.enable = true; - userEmail = "maloneliam@proton.me"; - userName = "Liam Malone"; + settings = { + user.email = "maloneliam@proton.me"; + user.name = "Liam Malone"; + }; }; neovim = { enable = true; @@ -135,6 +135,10 @@ obs-studio = { enable = true; }; + diff-so-fancy = { + enable = true; + enableGitIntegration = true; + }; wofi.enable = true; }; }