diff --git a/.config/sherlock/config.toml b/.config/sherlock/config.toml new file mode 100644 index 0000000..0605ca3 --- /dev/null +++ b/.config/sherlock/config.toml @@ -0,0 +1,81 @@ +[default_apps] +teams = "teams-for-linux --enable-features=UseOzonePlatform --ozone-platform=wayland --url {meeting_url}" +calendar_client = "thunderbird" +terminal = "kitty" +browser = "/usr/lib/firefox/firefox %u" + +[units] +lengths = "meters" +weights = "kg" +volumes = "l" +temperatures = "C" +currency = "eur" + +[debug] +try_suppress_errors = false +try_suppress_warnings = false +app_paths = [] + +[appearance] +width = 900 +height = 593 +gsk_renderer = "cairo" +icon_paths = ["~/.config/sherlock/icons"] +icon_size = 22 +use_base_css = true +use_system_theme = false +opacity = 1.0 +mod_key_ascii = ["⇧", "⇧", "⌘", "⌘", "⎇", "✦", "✦", "⌘"] +num_shortcuts = 5 + +[behavior] +use_xdg_data_dir_icons = false +animate = true +use_lr_nav = false + +[binds] +up = "control-k" +down = "control-j" +left = "control-ih" +right = "control-l" +context = "control-i" +modifier = "control" +exec_inplace = "control-return" + +[files] +config = "/home/mpuchstein/.config/sherlock/config.toml" +css = "/home/mpuchstein/.config/sherlock/main.css" +fallback = "/home/mpuchstein/.config/sherlock/fallback.json" +alias = "/home/mpuchstein/.config/sherlock/sherlock_alias.json" +ignore = "/home/mpuchstein/.config/sherlock/sherlockignore" +actions = "/home/mpuchstein/.config/sherlock/sherlock_actions.json" + +[runtime] +multi = false +center = false +photo_mode = false +display_raw = false +daemonize = false + +[caching] +enable = true +cache = "/home/mpuchstein/.cache/sherlock/desktop_files.bin" + +[expand] +enable = false +edge = "top" +margin = 0 + +[backdrop] +enable = false +opacity = 0.6 +edge = "top" + +[status_bar] +enable = true + +[search_bar_icon] +enable = true +icon = "system-search-symbolic" +icon_back = "sherlock-back" +size = 22 diff --git a/.config/sherlock/fallback.json b/.config/sherlock/fallback.json new file mode 100644 index 0000000..84cbf7d --- /dev/null +++ b/.config/sherlock/fallback.json @@ -0,0 +1,256 @@ +[ + { + "name": "Weather", + "alias": null, + "tag_start": null, + "tag_end": null, + "display_name": null, + "on_return": null, + "next_content": null, + "type": "weather", + "priority": 1.0, + "exit": true, + "shortcut": false, + "spawn_focus": false, + "async": true, + "home": "OnlyHome", + "args": { + "location": "nospelt, luxembourg", + "update_interval": 60 + }, + "binds": null, + "actions": [ + { + "name": "Show in Web", + "exec": "https://www.wttr.in/nospelt", + "icon": "sherlock-link", + "method": "web_launcher", + "exit": true + } + ], + "add_actions": null + }, + { + "name": "Spotify", + "type": "audio_sink", + "args": {}, + "async": true, + "priority": 0.5, + "home": "Home", + "spawn_focus": false, + "actions": [ + { + "name": "Skip", + "icon": "media-seek-forward", + "exec": "playerctl next", + "method": "command" + }, + { + "name": "Previous", + "icon": "media-seek-backward", + "exec": "playerctl previous", + "method": "command" + } + ], + "binds": [ + { + "bind": "control+p", + "callback": "playpause", + "exit": false + }, + { + "bind": "control+l", + "callback": "next", + "exit": false + }, + { + "bind": "control+h", + "callback": "previous", + "exit": false + } + ] + }, + { + "name": "Calculator", + "alias": null, + "tag_start": null, + "tag_end": null, + "display_name": null, + "on_return": "copy", + "next_content": null, + "type": "calculation", + "priority": 1.0, + "exit": true, + "shortcut": true, + "spawn_focus": true, + "async": false, + "home": "Search", + "args": { + "capabilities": [ + "calc.math", + "calc.units" + ] + }, + "binds": null, + "actions": null, + "add_actions": null + }, + { + "name": "App Launcher", + "alias": "app", + "tag_start": null, + "tag_end": null, + "display_name": null, + "on_return": null, + "next_content": null, + "type": "app_launcher", + "priority": 3.0, + "exit": true, + "shortcut": true, + "spawn_focus": true, + "async": false, + "home": "Home", + "args": {}, + "binds": null, + "actions": null, + "add_actions": null + }, + { + "name": "Kill Process", + "alias": "kill", + "tag_start": null, + "tag_end": null, + "display_name": null, + "on_return": null, + "next_content": null, + "type": "process", + "priority": 0.0, + "exit": true, + "shortcut": true, + "spawn_focus": true, + "async": false, + "home": "Search", + "args": {}, + "binds": null, + "actions": null, + "add_actions": null + }, + { + "name": "Web Search", + "alias": "gg", + "tag_start": "{keyword}", + "tag_end": null, + "display_name": "Google Search", + "on_return": null, + "next_content": null, + "type": "web_launcher", + "priority": 100.0, + "exit": true, + "shortcut": true, + "spawn_focus": true, + "async": false, + "home": "Search", + "args": { + "icon": "google", + "search_engine": "google" + }, + "binds": null, + "actions": null, + "add_actions": null + }, + { + "name": "Pomodoro Timer", + "type": "pomodoro", + "args": { + "program": "~/.config/sherlock/scripts/sherlock-pomodoro", + "socket": "/tmp/sherlock-pomorodo.sock", + "style": "minimal" + }, + "priority": 0, + "home": "Home", + "spawn_focus": false, + "binds": [ + { + "bind": "control+r", + "callback": "reset" + } + ], + "actions": [ + { + "name": "Reset", + "icon": "edit-undo", + "exec": "", + "method": "inner.reset", + "exit": false + }, + { + "name": "Toggle", + "icon": "media-playback-start", + "exec": "", + "method": "inner.toggle", + "exit": false + } + ] + }, + { + "name": "Clipboard", + "type": "clipboard", + "priority": 1.5, + "exit": true, + "shortcut": true, + "home": "Search", + "args": { + "history_length": 50, + "detect_urls": true, + "detect_colors": true, + "detect_expressions": true + } + }, + { + "name": "Emoji", + "alias": "em", + "type": "emoji", + "priority": 4.0, + "exit": true, + "shortcut": false, + "home": "Search", + "args": { + "default_skin_tone": "Simpson" + } + }, + { + "name": "Power Menu", + "alias": "pow", + "type": "custom", + "priority": 0.5, + "exit": true, + "shortcut": true, + "home": "Search", + "args": { + "commands": [ + { + "name": "Shutdown", + "exec": "systemctl poweroff", + "icon": "system-shutdown", + "confirm": true + }, + { + "name": "Reboot", + "exec": "systemctl reboot", + "icon": "system-reboot", + "confirm": true + }, + { + "name": "Sleep", + "exec": "systemctl suspend", + "icon": "media-playback-pause" + }, + { + "name": "Lock Screen", + "exec": "hyprlock", + "icon": "system-lock-screen" + } + ] + } + } +] diff --git a/.config/sherlock/main.css b/.config/sherlock/main.css new file mode 100644 index 0000000..e69de29 diff --git a/.config/sherlock/sherlock_actions.json b/.config/sherlock/sherlock_actions.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/.config/sherlock/sherlock_actions.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/.config/sherlock/sherlock_alias.json b/.config/sherlock/sherlock_alias.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.config/sherlock/sherlock_alias.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.config/sherlock/sherlockignore b/.config/sherlock/sherlockignore new file mode 100644 index 0000000..e69de29 diff --git a/.config/sherlock/theme.txt b/.config/sherlock/theme.txt new file mode 100644 index 0000000..e69de29 diff --git a/.config/sherlock/themes/rose-pine.css b/.config/sherlock/themes/rose-pine.css new file mode 100644 index 0000000..49bd2ac --- /dev/null +++ b/.config/sherlock/themes/rose-pine.css @@ -0,0 +1,260 @@ +/* Rosé Pine (main) theme for Sherlock + * - condensed tiles + * - coherent dark scheme + */ + +/* 1. Rosé Pine palette variables (main variant) */ +:root { + --rp-base: #191724; + --rp-surface: #1f1d2e; + --rp-overlay: #26233a; + --rp-muted: #6e6a86; + --rp-subtle: #908caa; + --rp-text: #e0def4; + --rp-love: #eb6f92; + --rp-gold: #f6c177; + --rp-rose: #ebbcba; + --rp-pine: #31748f; + --rp-foam: #9ccfd8; + --rp-iris: #c4a7e7; + --rp-hl-low: #21202e; + --rp-hl-med: #403d52; + --rp-hl-high: #524f67; + + --rp-radius: 10px; + --rp-radius-small: 7px; + --rp-border-width: 1px; + + --rp-shadow-soft: 0 18px 45px rgba(0, 0, 0, 0.45); + --rp-transition-fast: 120ms ease-out; + --rp-transition-med: 170ms cubic-bezier(0.16, 1, 0.3, 1); + + /* Tile sizing (condensed) */ + --rp-tile-padding-y: 4px; + --rp-tile-padding-x: 10px; + --rp-tile-gap: 4px; + --rp-tile-min-height: 32px; + --rp-font-size-main: 13px; + --rp-font-size-sub: 11px; +} + +/* 2. Global window & base layout */ + +window, +.main, +.root { + background-color: var(--rp-base); + color: var(--rp-text); + font-family: "JetBrainsMono Nerd Font", "FiraCode Nerd Font", + "Iosevka", system-ui, sans-serif; +} + +/* Sherlock main container (centered blurred panel) */ +#main, +.main-container, +.window { + background-color: var(--rp-surface); + border-radius: var(--rp-radius); + border: var(--rp-border-width) solid var(--rp-hl-high); + box-shadow: var(--rp-shadow-soft); +} + +/* 3. Search entry / input bar */ + +entry, +.search-entry, +.search-input { + background-color: var(--rp-hl-low); + color: var(--rp-text); + border-radius: var(--rp-radius-small); + border: var(--rp-border-width) solid var(--rp-hl-med); + padding: 6px 9px; + font-size: 13px; +} + +entry:focus, +.search-entry:focus, +.search-input:focus { + border-color: var(--rp-iris); + box-shadow: 0 0 0 1px rgba(196, 167, 231, 0.35); +} + +/* 4. Condensed tile list */ + +.list, +.list-container, +.tile-list { + background: transparent; + margin-top: 4px; + row-gap: var(--rp-tile-gap); +} + +/* Base tile style (unselected) */ +.tile, +.launcher-tile, +.launcher-item, +.item { + background-color: var(--rp-hl-low); + border-radius: var(--rp-radius-small); + border: var(--rp-border-width) solid transparent; + min-height: var(--rp-tile-min-height); + padding: var(--rp-tile-padding-y) var(--rp-tile-padding-x); + margin-bottom: var(--rp-tile-gap); + + color: var(--rp-text); + font-size: var(--rp-font-size-main); + + display: flex; + align-items: center; + column-gap: 6px; + + transition: background-color var(--rp-transition-fast), + border-color var(--rp-transition-fast), + transform var(--rp-transition-med); +} + +/* Hover / active state */ +.tile:hover, +.launcher-tile:hover, +.launcher-item:hover, +.item:hover { + background-color: var(--rp-hl-med); +} + +/* Selected / focused tile */ +.tile:selected, +.launcher-tile:selected, +.launcher-item:selected, +.item:selected, +.tile:focus { + background-color: var(--rp-overlay); + border-color: var(--rp-iris); + transform: translateY(-1px); +} + +/* 5. Icon, title, subtitle */ + +.tile-icon, +.item-icon, +.icon { + color: var(--rp-foam); + min-width: 18px; + min-height: 18px; +} + +/* Main name/title */ +.tile-label, +.tile-title, +.item-title, +.title { + color: var(--rp-text); + font-weight: 500; + font-size: var(--rp-font-size-main); +} + +/* Secondary description */ +.tile-description, +.item-subtitle, +.subtitle, +.description { + color: var(--rp-subtle); + font-size: var(--rp-font-size-sub); +} + +/* 6. Shortcut indicator (mod+number) */ + +.shortcut, +.tile-shortcut, +.item-shortcut { + margin-left: auto; + font-size: 10px; + padding: 2px 6px; + border-radius: 999px; + background-color: var(--rp-hl-med); + color: var(--rp-gold); +} + +/* 7. Category / section headers */ + +.section-header, +.category-header, +.header-label { + color: var(--rp-iris); + font-size: 11px; + text-transform: uppercase; + letter-spacing: 0.08em; + margin: 3px 0 2px 2px; +} + +/* 8. Widgets (weather, music, async) */ + +.widget, +.weather-widget, +.music-widget, +.async-widget { + background-color: var(--rp-overlay); + border-radius: var(--rp-radius-small); + border: var(--rp-border-width) solid var(--rp-hl-high); + padding: 6px 9px; + margin-bottom: 6px; +} + +/* Weather-specific hints (you can tweak to taste) */ +.weather-widget .temperature { + color: var(--rp-rose); + font-weight: 500; +} +.weather-widget .condition { + color: var(--rp-subtle); +} + +/* 9. Context menu */ + +.context-menu, +.menu, +popover { + background-color: var(--rp-surface); + border-radius: var(--rp-radius-small); + border: var(--rp-border-width) solid var(--rp-hl-high); +} + +.context-menu row, +.menu-item { + padding: 4px 8px; + font-size: 12px; +} + +.context-menu row:hover, +.menu-item:hover { + background-color: var(--rp-hl-med); +} + +/* 10. Scrollbars (subtle) */ + +scrollbar, +scrollbar slider { + background-color: transparent; +} + +scrollbar slider { + background-color: rgba(144, 140, 170, 0.6); /* subtle */ + border-radius: 999px; +} + +/* 11. Error / warning / info states */ + +.error, +.error-label { + color: var(--rp-love); +} + +.warning, +.warning-label { + color: var(--rp-gold); +} + +.info, +.info-label { + color: var(--rp-foam); +} +