diff --git a/config/apps/default.nix b/config/apps/default.nix index b41be50..89d7d74 100644 --- a/config/apps/default.nix +++ b/config/apps/default.nix @@ -5,5 +5,7 @@ ./waybar.nix ./alacritty.nix ./zsh.nix + ./libinput.nix + ./rofi.nix ]; } diff --git a/config/apps/libinput.nix b/config/apps/libinput.nix new file mode 100644 index 0000000..39c674d --- /dev/null +++ b/config/apps/libinput.nix @@ -0,0 +1,13 @@ +{pkgs, config, ...}: { + home.packages = with pkgs; [ + libinput + libinput-gestures + ]; + + xdg.configFile."libinput-gestures.conf".text = '' + gesture swipe left 4 swaymsg workspace next + gesture swipe right 4 swaymsg workspace next + gesture swipe down 4 swaylock-wrapper + gesture pinch in 4 rofi -combi-modi window,drun,run,ssh,combi -show combi -show-icons +''; +} diff --git a/config/apps/rofi.nix b/config/apps/rofi.nix new file mode 100644 index 0000000..f54e60b --- /dev/null +++ b/config/apps/rofi.nix @@ -0,0 +1,239 @@ +{pkgs, config, ...}: let + theme = import ../data/theme.nix { inherit config; }; +in { + xdg.dataFile."rofi/themes/launcher.rasi".text = '' +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Rofi Theme File + * Rofi Version: 1.7.3 + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +* { + font: "JetBrains Mono Nerd Font 10"; + background: #101010; + background-alt: #252525; + foreground: #FFFFFF; + selected: #505050; + active: #909090; + urgent: #707070; +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + border-radius: 20px; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + background-color: transparent; + orientation: vertical; + children: [ "inputbar", "listbox" ]; +} + +listbox { + spacing: 20px; + padding: 20px; + background-color: transparent; + orientation: vertical; + children: [ "message", "listview", "mode-switcher" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 100px 40px; + background-color: transparent; + background-image: url("~/.config/rofi/images/g.png", width); + text-color: @foreground; + orientation: horizontal; + children: [ "textbox-prompt-colon", "entry" ]; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 12px 15px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; +} +entry { + enabled: true; + expand: true; + padding: 12px 16px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Search"; + placeholder-color: inherit; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + background-color: transparent; + text-color: @foreground; +} +button { + padding: 12px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: @selected; + text-color: @foreground; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 10px; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + padding: 12px; + border-radius: 100%; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal { + background-color: inherit; + text-color: inherit; +} +element normal.urgent { + background-color: @urgent; + text-color: @foreground; +} +element normal.active { + background-color: @active; + text-color: @foreground; +} +element selected.normal { + background-color: @selected; + text-color: @foreground; +} +element selected.urgent { + background-color: @urgent; + text-color: @foreground; +} +element selected.active { + background-color: @urgent; + text-color: @foreground; +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +message { + background-color: transparent; +} +textbox { + padding: 12px; + border-radius: 100%; + background-color: @background-alt; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; +} +error-message { + padding: 15px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} +''; + + xdg.configFile."rofi/launcher.rasi".text = '' +configuration { + modi: "drun,run,ssh,filebrowser,window"; + terminal: "${pkgs.alacritty}/bin/alacritty"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-ssh: ""; + + drun-display-format: "{name}"; + run-display-format: "{name}"; + ssh-display-format: "{name}"; + combi-display-format: "{mode} {name}"; + + combi-modi: "window,drun,run,filebrowser"; + + kb-mode-previous: "Control+h"; + kb-mode-next: "Control+l"; + kb-mode-complete: ""; + kb-remove-char-back: "BackSpace,Shift+BackSpace"; +} +''; + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland; + terminal = "{pkgs.alacritty}/bin/alacritty"; + + theme = "launcher.rasi"; + }; +} diff --git a/config/apps/sway.nix b/config/apps/sway.nix index 0f53377..2d8a7c1 100644 --- a/config/apps/sway.nix +++ b/config/apps/sway.nix @@ -1,4 +1,4 @@ -{pkgs, lib, ...}: +{pkgs, lib, config, ...}: let base = import ./../options.nix; @@ -7,6 +7,8 @@ let right = "l"; up = "k"; down = "j"; + + launcher = "${pkgs.rofi}/bin/rofi -config ${config.xdg.configHome}/rofi/launcher.rasi -theme ${config.xdg.dataHome}/rofi/themes/launcher.rasi -show drun -show-icons"; in { wayland = { @@ -71,7 +73,7 @@ in { "${mod}+Shift+Return" = "exec ${alacritty}/bin/alacritty"; "${mod}+q" = "kill"; - "${mod}+p" = "exec ${pkgs.rofi}/bin/rofi -combi-modes window,drun,run -modes combi,ssh -show combi -show-icons"; + "${mod}+p" = "exec ${launcher}"; "${mod}+Shift+e" = "exec ${pkgs.emacs}/bin/emacsclient -c -a ''"; "${mod}+Shift+b" = "exec ${pkgs.firefox}/bin/firefox"; "${mod}+Shift+c" = "reload";