From 694a21affa160b9c4044bbf5f68884df2abc1eca Mon Sep 17 00:00:00 2001 From: SebastianStork Date: Wed, 8 May 2024 23:40:41 +0200 Subject: [PATCH] Wrap rofi --- modules/home/de/default.nix | 1 - modules/home/de/hyprland/default.nix | 1 - modules/home/de/rofi/default.nix | 20 -- users/seb/home.nix | 1 + wrappers/default.nix | 1 - .../rofi/dark-config.rasi | 37 +-- wrappers/rofi/default.nix | 21 ++ wrappers/rofi/light-config.rasi | 310 ++++++++++++++++++ 8 files changed, 346 insertions(+), 46 deletions(-) delete mode 100644 modules/home/de/rofi/default.nix rename modules/home/de/rofi/theme.rasi => wrappers/rofi/dark-config.rasi (97%) create mode 100644 wrappers/rofi/default.nix create mode 100644 wrappers/rofi/light-config.rasi diff --git a/modules/home/de/default.nix b/modules/home/de/default.nix index 679f0a8..23797e9 100644 --- a/modules/home/de/default.nix +++ b/modules/home/de/default.nix @@ -2,7 +2,6 @@ imports = [ ./hyprland ./theme.nix - ./rofi ./waybar.nix ./hypridlelock.nix ]; diff --git a/modules/home/de/hyprland/default.nix b/modules/home/de/hyprland/default.nix index 286112d..e43cbec 100644 --- a/modules/home/de/hyprland/default.nix +++ b/modules/home/de/hyprland/default.nix @@ -26,7 +26,6 @@ in { services.dunst.enable = true; myConfig.de = { - rofi.enable = true; hypridlelock.enable = true; waybar.enable = true; }; diff --git a/modules/home/de/rofi/default.nix b/modules/home/de/rofi/default.nix deleted file mode 100644 index 2acb80c..0000000 --- a/modules/home/de/rofi/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - cfg = config.myConfig.de.rofi; -in { - options.myConfig.de.rofi = { - enable = lib.mkEnableOption ""; - }; - - config = lib.mkIf cfg.enable { - programs.rofi = { - enable = true; - package = pkgs.rofi-wayland; - theme = ./theme.rasi; - }; - }; -} diff --git a/users/seb/home.nix b/users/seb/home.nix index 8dd8a03..912593b 100644 --- a/users/seb/home.nix +++ b/users/seb/home.nix @@ -46,5 +46,6 @@ myWrappers.marktext myWrappers.webcord (myWrappers.kitty {inherit (config.myConfig.de) theme;}) + (myWrappers.rofi {inherit (config.myConfig.de) theme;}) ]; } diff --git a/wrappers/default.nix b/wrappers/default.nix index 26ea7fe..077f0bb 100644 --- a/wrappers/default.nix +++ b/wrappers/default.nix @@ -15,7 +15,6 @@ .wrapped; in { _module.args.myWrappers = lib.pipe (builtins.readDir ./.) [ - (lib.filterAttrs (name: value: value == "regular")) (lib.filterAttrs (name: value: name != "default.nix")) (lib.concatMapAttrs (name: _: {${lib.removeSuffix ".nix" name} = import ./${name} {inherit assembleWrapper pkgs lib;};})) ]; diff --git a/modules/home/de/rofi/theme.rasi b/wrappers/rofi/dark-config.rasi similarity index 97% rename from modules/home/de/rofi/theme.rasi rename to wrappers/rofi/dark-config.rasi index 8bc6f7f..c4c698b 100644 --- a/modules/home/de/rofi/theme.rasi +++ b/wrappers/rofi/dark-config.rasi @@ -1,25 +1,3 @@ -/** - * - * Author : Aditya Shakya (adi1090x) - * Github : @adi1090x - * - * Rofi Theme File - * Rofi Version: 1.7.3 - **/ - -/*****----- Configuration -----*****/ -configuration { - modi: "drun,run,filebrowser,window"; - show-icons: true; - display-drun: ""; - display-run: ""; - display-filebrowser: ""; - display-window: ""; - drun-display-format: "{name}"; - window-format: "{w} · {c} · {t}"; -} - -/*****----- Global Properties -----*****/ * { background: #1E2127FF; background-alt: #282B31FF; @@ -29,8 +7,21 @@ configuration { urgent: #E06C75FF; } +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: "󰀻"; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ * { - font: "Open Sans 12, Symbols Nerd Font 12"; + font: "Open Sans 12, Symbols Nerd Font Mono 12"; } * { diff --git a/wrappers/rofi/default.nix b/wrappers/rofi/default.nix new file mode 100644 index 0000000..c7309ff --- /dev/null +++ b/wrappers/rofi/default.nix @@ -0,0 +1,21 @@ +{ + assembleWrapper, + pkgs, + lib, + ... +}: {theme ? "dark"}: +assembleWrapper { + basePackage = pkgs.rofi-wayland; + + flags = let + kitty-config = + { + dark = ./dark-config.rasi; + light = ./light-config.rasi; + } + .${theme}; + in [ + "-config" + kitty-config + ]; +} diff --git a/wrappers/rofi/light-config.rasi b/wrappers/rofi/light-config.rasi new file mode 100644 index 0000000..45bbdb4 --- /dev/null +++ b/wrappers/rofi/light-config.rasi @@ -0,0 +1,310 @@ +* { + background: #F1F1F1FF; + background-alt: #E0E0E0FF; + foreground: #252525FF; + selected: #008EC4FF; + active: #10A778FF; + urgent: #C30771FF; +} + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: "󰀻"; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +* { + font: "Open Sans 12, Symbols Nerd Font Mono 12"; +} + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry", "mode-switcher" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px 10px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 5px 10px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px 10px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 2px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} \ No newline at end of file