rori 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +25 -0
- data/LICENSE +21 -0
- data/README.md +279 -0
- data/app/assets/stylesheets/rori/_init.css +79 -0
- data/app/assets/stylesheets/rori/layout.css +162 -0
- data/app/assets/stylesheets/rori/menubar.css +117 -0
- data/app/assets/stylesheets/rori/notifications.css +120 -0
- data/app/assets/stylesheets/rori/palette.css +114 -0
- data/app/assets/stylesheets/rori/shortcuts.css +110 -0
- data/app/assets/stylesheets/rori/terminal.css +98 -0
- data/app/assets/stylesheets/rori/themes.css +156 -0
- data/app/assets/stylesheets/rori/typing_badge.css +56 -0
- data/app/assets/stylesheets/rori/wallpaper.css +52 -0
- data/app/assets/stylesheets/rori/window.css +174 -0
- data/app/controllers/concerns/rori/windowed.rb +15 -0
- data/app/controllers/rori/commands/bars_controller.rb +9 -0
- data/app/controllers/rori/commands/runs_controller.rb +22 -0
- data/app/controllers/rori/commands/themes_controller.rb +9 -0
- data/app/controllers/rori/commands/ui_controller.rb +9 -0
- data/app/controllers/rori/commands/wallpapers_controller.rb +9 -0
- data/app/controllers/rori/commands_controller.rb +7 -0
- data/app/controllers/rori/desktops_controller.rb +7 -0
- data/app/helpers/rori/assets_helper.rb +9 -0
- data/app/helpers/rori/keymap_helper.rb +50 -0
- data/app/helpers/rori/prefs_helper.rb +13 -0
- data/app/helpers/rori/theme_helper.rb +14 -0
- data/app/helpers/rori/wallpaper_helper.rb +19 -0
- data/app/helpers/rori/window_helper.rb +36 -0
- data/app/javascript/rori/clock_controller.js +18 -0
- data/app/javascript/rori/command_index.js +84 -0
- data/app/javascript/rori/fuzzy.js +50 -0
- data/app/javascript/rori/index.js +21 -0
- data/app/javascript/rori/notifications_controller.js +45 -0
- data/app/javascript/rori/palette_controller.js +307 -0
- data/app/javascript/rori/prefs_controller.js +68 -0
- data/app/javascript/rori/rori_controller.js +996 -0
- data/app/javascript/rori/terminal_controller.js +198 -0
- data/app/javascript/rori/theme_controller.js +35 -0
- data/app/javascript/rori/wallpaper_controller.js +67 -0
- data/app/models/rori/command.rb +105 -0
- data/app/models/rori/notification.rb +20 -0
- data/app/models/rori/theme/color.rb +30 -0
- data/app/models/rori/theme.rb +87 -0
- data/app/models/rori/wallpaper.rb +54 -0
- data/app/views/layouts/rori/_head.html.haml +2 -0
- data/app/views/layouts/rori/shell.html.haml +97 -0
- data/app/views/layouts/rori/window.html.haml +10 -0
- data/app/views/rori/_menubar.html.haml +14 -0
- data/app/views/rori/_notification.html.haml +9 -0
- data/app/views/rori/_notifications.html.haml +10 -0
- data/app/views/rori/_palette.html.haml +13 -0
- data/app/views/rori/_shortcuts.html.haml +47 -0
- data/app/views/rori/_terminal.html.haml +9 -0
- data/app/views/rori/_wallpaper.html.haml +7 -0
- data/app/views/rori/_wallpaper_credit.html.haml +3 -0
- data/app/views/rori/_window.html.haml +15 -0
- data/app/views/rori/commands/_command.html.haml +17 -0
- data/app/views/rori/commands/index.html.haml +5 -0
- data/app/views/rori/desktops/show.html.haml +1 -0
- data/config/importmap.rb +3 -0
- data/config/locales/rori.en.yml +133 -0
- data/config/routes/rori.rb +13 -0
- data/lib/generators/rori/install/install_generator.rb +67 -0
- data/lib/generators/rori/install/templates/rori.rb.tt +22 -0
- data/lib/rori/engine.rb +19 -0
- data/lib/rori/version.rb +3 -0
- data/lib/rori.rb +180 -0
- data/lib/tasks/rori.rake +9 -0
- data/vendor/themes/LICENSE +25 -0
- data/vendor/themes/ghostty/Catppuccin Latte +22 -0
- data/vendor/themes/ghostty/Catppuccin Mocha +22 -0
- data/vendor/themes/ghostty/Everforest Dark Med +22 -0
- data/vendor/themes/ghostty/Flexoki Light +22 -0
- data/vendor/themes/ghostty/GitHub Dark Dimmed +22 -0
- data/vendor/themes/ghostty/Gruvbox Material Dark +22 -0
- data/vendor/themes/ghostty/Kanagawa Wave +22 -0
- data/vendor/themes/ghostty/Melange Dark +22 -0
- data/vendor/themes/ghostty/Nord +22 -0
- data/vendor/themes/ghostty/Rose Pine Dawn +22 -0
- data/vendor/themes/ghostty/Rose Pine Moon +22 -0
- data/vendor/themes/ghostty/TokyoNight Storm +22 -0
- data/vendor/themes/ghostty/Tomorrow Night Eighties +22 -0
- data/vendor/themes/ghostty/Zenbones Light +22 -0
- data/vendor/wallpapers/unsplash.yml +23 -0
- metadata +219 -0
data/lib/rori.rb
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
require "rails"
|
|
2
|
+
require "turbo-rails"
|
|
3
|
+
require "stimulus-rails"
|
|
4
|
+
require "importmap-rails"
|
|
5
|
+
require "propshaft"
|
|
6
|
+
require "haml"
|
|
7
|
+
|
|
8
|
+
require "rori/version"
|
|
9
|
+
require "rori/engine"
|
|
10
|
+
|
|
11
|
+
# The desk: a niri-style window manager for Rails pages (tiled turbo-frame
|
|
12
|
+
# windows, ⌘K palette and terminal, Ghostty themes). A Rails engine; see the
|
|
13
|
+
# README for wiring it into a host app. Configure in an initializer:
|
|
14
|
+
#
|
|
15
|
+
# Rori.configure do |desk|
|
|
16
|
+
# desk.records = %w[ User Project ]
|
|
17
|
+
# desk.hover_keys = true
|
|
18
|
+
# end
|
|
19
|
+
module Rori
|
|
20
|
+
# Shown in the menubar and the <title> of the bare desk.
|
|
21
|
+
mattr_accessor :app_name, default: "Rori"
|
|
22
|
+
|
|
23
|
+
# Model class names whose most recent records are listed in ⌘K.
|
|
24
|
+
mattr_accessor :records, default: []
|
|
25
|
+
mattr_accessor :record_limit, default: 25
|
|
26
|
+
|
|
27
|
+
# Extra palette entries: callables returning Rori::Command(s), evaluated on
|
|
28
|
+
# every palette open (so they can list fresh data).
|
|
29
|
+
mattr_accessor :commands, default: []
|
|
30
|
+
|
|
31
|
+
# Server-side commands registered with `Rori.command`, by name.
|
|
32
|
+
Runnable = Data.define(:name, :confirm, :block) do
|
|
33
|
+
def label = I18n.t(name, scope: "rori.commands.custom")
|
|
34
|
+
|
|
35
|
+
def call = block.call
|
|
36
|
+
end
|
|
37
|
+
mattr_accessor :runnables, default: {}
|
|
38
|
+
|
|
39
|
+
# `Rori.notify` broadcasts here; every open desk subscribes (turbo_stream_from).
|
|
40
|
+
mattr_accessor :notifications_stream, default: "rori_notifications"
|
|
41
|
+
|
|
42
|
+
# Ghostty themes compiled by `bin/rails rori:themes:build`; both default to
|
|
43
|
+
# the ones bundled with the gem (paths resolve lazily, after boot).
|
|
44
|
+
mattr_writer :themes_directory, :themes_stylesheet
|
|
45
|
+
mattr_accessor :theme_cookie, default: "theme"
|
|
46
|
+
|
|
47
|
+
# The app's own Ghostty theme files (a directory, relative to Rails.root or
|
|
48
|
+
# absolute), listed alongside the bundled ones; same name replaces a bundled
|
|
49
|
+
# theme. No build step: their CSS is rendered into the shell.
|
|
50
|
+
mattr_accessor :themes_folder
|
|
51
|
+
|
|
52
|
+
# Optional background photos (off by default): a random one per page load,
|
|
53
|
+
# unless one is pinned (UI › Wallpaper › Pin).
|
|
54
|
+
mattr_accessor :wallpapers, default: false
|
|
55
|
+
mattr_writer :wallpapers_file
|
|
56
|
+
mattr_accessor :wallpaper_cookie, default: "wallpaper"
|
|
57
|
+
mattr_accessor :wallpaper_pin_cookie, default: "wallpaper_pin"
|
|
58
|
+
|
|
59
|
+
# UI › Menu bar (top | bottom) and the dismissible empty-desk hint.
|
|
60
|
+
mattr_accessor :bars_cookie, default: "bars"
|
|
61
|
+
mattr_accessor :hint_cookie, default: "hint"
|
|
62
|
+
|
|
63
|
+
# The app's own wallpapers: a folder in its asset path (e.g. "wallpapers" for
|
|
64
|
+
# app/assets/images/wallpapers). When set, its images replace the bundled
|
|
65
|
+
# Unsplash photos.
|
|
66
|
+
mattr_accessor :wallpapers_folder
|
|
67
|
+
|
|
68
|
+
def self.themes_directory = @@themes_directory || Engine.root.join("vendor/themes/ghostty")
|
|
69
|
+
|
|
70
|
+
def self.themes_stylesheet = @@themes_stylesheet || Engine.root.join("app/assets/stylesheets/rori/themes.css")
|
|
71
|
+
|
|
72
|
+
def self.wallpapers_file = @@wallpapers_file || Engine.root.join("vendor/wallpapers/unsplash.yml")
|
|
73
|
+
|
|
74
|
+
# The terminal (⌘K as a command line) opens with this bare key outside text
|
|
75
|
+
# fields — KeyboardEvent#code, like the keymap — and with `toggle_terminal`.
|
|
76
|
+
mattr_accessor :terminal_key, default: "Backquote"
|
|
77
|
+
|
|
78
|
+
# Keyboard: desk action (rori_controller.js#perform) → key chords, written as
|
|
79
|
+
# `KeyboardEvent#code` names joined with modifiers. `Mod` stands for
|
|
80
|
+
# `Rori.modifier` — Alt in the browser, where ⌘ combos belong to the browser;
|
|
81
|
+
# a native shell (e.g. Tauri) can switch to Meta. `Digit*` binds 1–9 to the
|
|
82
|
+
# nth workspace. Chords never fire inside text fields; Esc leaves the field.
|
|
83
|
+
MODIFIERS = { "Alt" => "⌥", "Meta" => "⌘", "Control" => "⌃" }.freeze
|
|
84
|
+
mattr_accessor :modifier, default: "Alt"
|
|
85
|
+
|
|
86
|
+
# The native shell (src-tauri) marks its webview's user agent; there ⌘ combos
|
|
87
|
+
# aren't taken by a browser, so pages rendered for it use `native_modifier`.
|
|
88
|
+
mattr_accessor :native_user_agent, default: "RoriApp"
|
|
89
|
+
mattr_accessor :native_modifier, default: "Meta"
|
|
90
|
+
|
|
91
|
+
# Per-modifier replacements for chords the platform already owns: with ⌘,
|
|
92
|
+
# ⌘C is Copy in the native Edit menu, which fires before the page sees it.
|
|
93
|
+
mattr_accessor :keymap_overrides, default: {
|
|
94
|
+
"Meta" => { center_column: %w[ Mod+Shift+KeyC ] }
|
|
95
|
+
}.freeze
|
|
96
|
+
mattr_accessor :keymap, default: {
|
|
97
|
+
focus_left: %w[ Mod+ArrowLeft Mod+KeyH ],
|
|
98
|
+
focus_right: %w[ Mod+ArrowRight Mod+KeyL ],
|
|
99
|
+
focus_up: %w[ Mod+ArrowUp Mod+KeyK ],
|
|
100
|
+
focus_down: %w[ Mod+ArrowDown Mod+KeyJ ],
|
|
101
|
+
move_left: %w[ Mod+Shift+ArrowLeft Mod+Shift+KeyH ],
|
|
102
|
+
move_right: %w[ Mod+Shift+ArrowRight Mod+Shift+KeyL ],
|
|
103
|
+
move_up: %w[ Mod+Shift+ArrowUp Mod+Shift+KeyK ],
|
|
104
|
+
move_down: %w[ Mod+Shift+ArrowDown Mod+Shift+KeyJ ],
|
|
105
|
+
switch_to_workspace: %w[ Mod+Digit* ],
|
|
106
|
+
move_to_workspace: %w[ Mod+Shift+Digit* ],
|
|
107
|
+
consume_left: %w[ Mod+BracketLeft ],
|
|
108
|
+
consume_right: %w[ Mod+BracketRight ],
|
|
109
|
+
cycle_width: %w[ Mod+KeyR ],
|
|
110
|
+
full_width: %w[ Mod+KeyF ],
|
|
111
|
+
center_column: %w[ Mod+KeyC ],
|
|
112
|
+
overview: %w[ Mod+KeyO ],
|
|
113
|
+
close_window: %w[ Mod+KeyW ],
|
|
114
|
+
reopen_window: %w[ Mod+Shift+KeyT ],
|
|
115
|
+
toggle_terminal: %w[ Mod+Backquote ],
|
|
116
|
+
shortcuts: %w[ Mod+Shift+Slash ]
|
|
117
|
+
}.freeze
|
|
118
|
+
|
|
119
|
+
# Bare keys (opt-in). Blender-style: once the pointer deliberately moves onto
|
|
120
|
+
# an inactive window, they act on that window without taking focus — even
|
|
121
|
+
# while you're typing in a field elsewhere — until the pointer rests for
|
|
122
|
+
# `hover_timeout` seconds, leaves, or another key is typed. Otherwise, when
|
|
123
|
+
# no field has focus, they act on the focused window.
|
|
124
|
+
# No hjkl/arrows here: they'd shadow text entry and page scrolling.
|
|
125
|
+
mattr_accessor :hover_keys, default: false
|
|
126
|
+
mattr_accessor :hover_timeout, default: 1.5
|
|
127
|
+
mattr_accessor :hover_keymap, default: {
|
|
128
|
+
close_window: %w[ KeyW ],
|
|
129
|
+
reopen_window: %w[ KeyU ],
|
|
130
|
+
cycle_width: %w[ KeyR ],
|
|
131
|
+
full_width: %w[ KeyF ],
|
|
132
|
+
center_column: %w[ KeyC ],
|
|
133
|
+
consume_left: %w[ BracketLeft ],
|
|
134
|
+
consume_right: %w[ BracketRight ],
|
|
135
|
+
move_left: %w[ Shift+KeyH ],
|
|
136
|
+
move_right: %w[ Shift+KeyL ],
|
|
137
|
+
switch_to_workspace: %w[ Digit* ],
|
|
138
|
+
move_to_workspace: %w[ Shift+Digit* ]
|
|
139
|
+
}.freeze
|
|
140
|
+
|
|
141
|
+
class << self
|
|
142
|
+
def configure = yield(self)
|
|
143
|
+
|
|
144
|
+
# A command that runs on the server, listed in ⌘K and the terminal under
|
|
145
|
+
# Run and labelled by `rori.commands.custom.<name>` in the app's locale:
|
|
146
|
+
#
|
|
147
|
+
# rori.command :reindex_search, confirm: true do
|
|
148
|
+
# SearchReindexJob.perform_later
|
|
149
|
+
# "Reindexing…"
|
|
150
|
+
# end
|
|
151
|
+
#
|
|
152
|
+
# The block runs inside the request, so hand slow work to a job (which can
|
|
153
|
+
# `Rori.notify` when it's done). A String it returns becomes the
|
|
154
|
+
# notification's text. `confirm: true` asks first: ↵ twice in ⌘K, y in the
|
|
155
|
+
# terminal.
|
|
156
|
+
def command(name, confirm: false, &block)
|
|
157
|
+
runnables[name.to_s] = Runnable.new(name: name.to_s, confirm:, block:)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# A notification in the corner of every open desk, e.g. from a job:
|
|
161
|
+
# Rori.notify "Search reindexed", "1,204 records", kind: :success
|
|
162
|
+
def notify(title, body = nil, kind: :info) = Notification.new(title:, body:, kind:).broadcast
|
|
163
|
+
|
|
164
|
+
# The keymap with `Mod` spelled out, as rori_controller.js matches it.
|
|
165
|
+
def resolved_keymap(modifier = self.modifier)
|
|
166
|
+
raise ArgumentError, "Rori modifier must be one of #{MODIFIERS.keys.join(", ")}" unless MODIFIERS.key?(modifier)
|
|
167
|
+
|
|
168
|
+
keymap.merge(keymap_overrides.fetch(modifier, {}))
|
|
169
|
+
.transform_values { |chords| Array(chords).map { it.sub(/\AMod\+/, "#{modifier}+") } }
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def modifier_symbol(modifier = self.modifier) = MODIFIERS.fetch(modifier)
|
|
173
|
+
|
|
174
|
+
def native?(user_agent) = user_agent.to_s.include?(native_user_agent)
|
|
175
|
+
|
|
176
|
+
def modifier_for(user_agent) = native?(user_agent) ? native_modifier : modifier
|
|
177
|
+
|
|
178
|
+
def resolved_hover_keymap = hover_keys ? hover_keymap : {}
|
|
179
|
+
end
|
|
180
|
+
end
|
data/lib/tasks/rori.rake
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
namespace :rori do
|
|
2
|
+
namespace :themes do
|
|
3
|
+
desc "Compile Rori.themes_directory (Ghostty themes) into Rori.themes_stylesheet"
|
|
4
|
+
task build: :environment do
|
|
5
|
+
Rori.themes_stylesheet.write(Rori::Theme.stylesheet)
|
|
6
|
+
puts "Wrote #{Rori::Theme.all.size} themes to #{Rori.themes_stylesheet.relative_path_from(Rails.root)}"
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2011 to Present Mark Badolato
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
This license covers the iTerm-Color-Schemes repository collection of themes.
|
|
24
|
+
|
|
25
|
+
The copyright/license for each individual theme belongs to the author of that theme.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#bcc0cc
|
|
2
|
+
palette = 1=#d20f39
|
|
3
|
+
palette = 2=#40a02b
|
|
4
|
+
palette = 3=#df8e1d
|
|
5
|
+
palette = 4=#1e66f5
|
|
6
|
+
palette = 5=#ea76cb
|
|
7
|
+
palette = 6=#179299
|
|
8
|
+
palette = 7=#5c5f77
|
|
9
|
+
palette = 8=#acb0be
|
|
10
|
+
palette = 9=#e7103f
|
|
11
|
+
palette = 10=#46b02f
|
|
12
|
+
palette = 11=#e49931
|
|
13
|
+
palette = 12=#3878f6
|
|
14
|
+
palette = 13=#ef95d7
|
|
15
|
+
palette = 14=#19a1a8
|
|
16
|
+
palette = 15=#6c6f85
|
|
17
|
+
background = #eff1f5
|
|
18
|
+
foreground = #4c4f69
|
|
19
|
+
cursor-color = #dc8a78
|
|
20
|
+
cursor-text = #eff1f5
|
|
21
|
+
selection-background = #dc8a78
|
|
22
|
+
selection-foreground = #eff1f5
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#45475a
|
|
2
|
+
palette = 1=#f38ba8
|
|
3
|
+
palette = 2=#a6e3a1
|
|
4
|
+
palette = 3=#f9e2af
|
|
5
|
+
palette = 4=#89b4fa
|
|
6
|
+
palette = 5=#f5c2e7
|
|
7
|
+
palette = 6=#94e2d5
|
|
8
|
+
palette = 7=#bac2de
|
|
9
|
+
palette = 8=#585b70
|
|
10
|
+
palette = 9=#f7aec2
|
|
11
|
+
palette = 10=#c2ecbf
|
|
12
|
+
palette = 11=#fcd682
|
|
13
|
+
palette = 12=#aeccfc
|
|
14
|
+
palette = 13=#f398da
|
|
15
|
+
palette = 14=#b1eae1
|
|
16
|
+
palette = 15=#a6adc8
|
|
17
|
+
background = #1e1e2e
|
|
18
|
+
foreground = #cdd6f4
|
|
19
|
+
cursor-color = #f5e0dc
|
|
20
|
+
cursor-text = #1e1e2e
|
|
21
|
+
selection-background = #f5e0dc
|
|
22
|
+
selection-foreground = #1e1e2e
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#7a8478
|
|
2
|
+
palette = 1=#e67e80
|
|
3
|
+
palette = 2=#a7c080
|
|
4
|
+
palette = 3=#dbbc7f
|
|
5
|
+
palette = 4=#7fbbb3
|
|
6
|
+
palette = 5=#d699b6
|
|
7
|
+
palette = 6=#83c092
|
|
8
|
+
palette = 7=#f2efdf
|
|
9
|
+
palette = 8=#a6b0a0
|
|
10
|
+
palette = 9=#f85552
|
|
11
|
+
palette = 10=#8da101
|
|
12
|
+
palette = 11=#dfa000
|
|
13
|
+
palette = 12=#3a94c5
|
|
14
|
+
palette = 13=#df69ba
|
|
15
|
+
palette = 14=#35a77c
|
|
16
|
+
palette = 15=#fffbef
|
|
17
|
+
background = #232a2e
|
|
18
|
+
foreground = #d3c6aa
|
|
19
|
+
cursor-color = #e69875
|
|
20
|
+
cursor-text = #543a48
|
|
21
|
+
selection-background = #543a48
|
|
22
|
+
selection-foreground = #d3c6aa
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#100f0f
|
|
2
|
+
palette = 1=#af3029
|
|
3
|
+
palette = 2=#66800b
|
|
4
|
+
palette = 3=#ad8301
|
|
5
|
+
palette = 4=#205ea6
|
|
6
|
+
palette = 5=#a02f6f
|
|
7
|
+
palette = 6=#24837b
|
|
8
|
+
palette = 7=#6f6e69
|
|
9
|
+
palette = 8=#b7b5ac
|
|
10
|
+
palette = 9=#d14d41
|
|
11
|
+
palette = 10=#879a39
|
|
12
|
+
palette = 11=#d0a215
|
|
13
|
+
palette = 12=#4385be
|
|
14
|
+
palette = 13=#ce5d97
|
|
15
|
+
palette = 14=#3aa99f
|
|
16
|
+
palette = 15=#cecdc3
|
|
17
|
+
background = #fffcf0
|
|
18
|
+
foreground = #100f0f
|
|
19
|
+
cursor-color = #100f0f
|
|
20
|
+
cursor-text = #fffcf0
|
|
21
|
+
selection-background = #cecdc3
|
|
22
|
+
selection-foreground = #100f0f
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#545d68
|
|
2
|
+
palette = 1=#f47067
|
|
3
|
+
palette = 2=#57ab5a
|
|
4
|
+
palette = 3=#c69026
|
|
5
|
+
palette = 4=#539bf5
|
|
6
|
+
palette = 5=#b083f0
|
|
7
|
+
palette = 6=#39c5cf
|
|
8
|
+
palette = 7=#909dab
|
|
9
|
+
palette = 8=#636e7b
|
|
10
|
+
palette = 9=#ff938a
|
|
11
|
+
palette = 10=#6bc46d
|
|
12
|
+
palette = 11=#daaa3f
|
|
13
|
+
palette = 12=#6cb6ff
|
|
14
|
+
palette = 13=#dcbdfb
|
|
15
|
+
palette = 14=#56d4dd
|
|
16
|
+
palette = 15=#cdd9e5
|
|
17
|
+
background = #22272e
|
|
18
|
+
foreground = #adbac7
|
|
19
|
+
cursor-color = #539bf5
|
|
20
|
+
cursor-text = #93dbff
|
|
21
|
+
selection-background = #adbac7
|
|
22
|
+
selection-foreground = #22272e
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#282828
|
|
2
|
+
palette = 1=#ea6962
|
|
3
|
+
palette = 2=#a9b665
|
|
4
|
+
palette = 3=#d8a657
|
|
5
|
+
palette = 4=#7daea3
|
|
6
|
+
palette = 5=#d3869b
|
|
7
|
+
palette = 6=#89b482
|
|
8
|
+
palette = 7=#d4be98
|
|
9
|
+
palette = 8=#7c6f64
|
|
10
|
+
palette = 9=#ea6962
|
|
11
|
+
palette = 10=#a9b665
|
|
12
|
+
palette = 11=#d8a657
|
|
13
|
+
palette = 12=#7daea3
|
|
14
|
+
palette = 13=#d3869b
|
|
15
|
+
palette = 14=#89b482
|
|
16
|
+
palette = 15=#ddc7a1
|
|
17
|
+
background = #282828
|
|
18
|
+
foreground = #d4be98
|
|
19
|
+
cursor-color = #d4be98
|
|
20
|
+
cursor-text = #282828
|
|
21
|
+
selection-background = #d4be98
|
|
22
|
+
selection-foreground = #282828
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#090618
|
|
2
|
+
palette = 1=#c34043
|
|
3
|
+
palette = 2=#76946a
|
|
4
|
+
palette = 3=#c0a36e
|
|
5
|
+
palette = 4=#7e9cd8
|
|
6
|
+
palette = 5=#957fb8
|
|
7
|
+
palette = 6=#6a9589
|
|
8
|
+
palette = 7=#c8c093
|
|
9
|
+
palette = 8=#727169
|
|
10
|
+
palette = 9=#e82424
|
|
11
|
+
palette = 10=#98bb6c
|
|
12
|
+
palette = 11=#e6c384
|
|
13
|
+
palette = 12=#7fb4ca
|
|
14
|
+
palette = 13=#938aa9
|
|
15
|
+
palette = 14=#7aa89f
|
|
16
|
+
palette = 15=#dcd7ba
|
|
17
|
+
background = #1f1f28
|
|
18
|
+
foreground = #dcd7ba
|
|
19
|
+
cursor-color = #dcd7ba
|
|
20
|
+
cursor-text = #1f1f28
|
|
21
|
+
selection-background = #dcd7ba
|
|
22
|
+
selection-foreground = #1f1f28
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#34302c
|
|
2
|
+
palette = 1=#bd8183
|
|
3
|
+
palette = 2=#78997a
|
|
4
|
+
palette = 3=#e49b5d
|
|
5
|
+
palette = 4=#7f91b2
|
|
6
|
+
palette = 5=#b380b0
|
|
7
|
+
palette = 6=#7b9695
|
|
8
|
+
palette = 7=#c1a78e
|
|
9
|
+
palette = 8=#867462
|
|
10
|
+
palette = 9=#d47766
|
|
11
|
+
palette = 10=#85b695
|
|
12
|
+
palette = 11=#ebc06d
|
|
13
|
+
palette = 12=#a3a9ce
|
|
14
|
+
palette = 13=#cf9bc2
|
|
15
|
+
palette = 14=#89b3b6
|
|
16
|
+
palette = 15=#ece1d7
|
|
17
|
+
background = #292522
|
|
18
|
+
foreground = #ece1d7
|
|
19
|
+
cursor-color = #ece1d7
|
|
20
|
+
cursor-text = #292522
|
|
21
|
+
selection-background = #ece1d7
|
|
22
|
+
selection-foreground = #403a36
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#3b4252
|
|
2
|
+
palette = 1=#bf616a
|
|
3
|
+
palette = 2=#a3be8c
|
|
4
|
+
palette = 3=#ebcb8b
|
|
5
|
+
palette = 4=#81a1c1
|
|
6
|
+
palette = 5=#b48ead
|
|
7
|
+
palette = 6=#88c0d0
|
|
8
|
+
palette = 7=#e5e9f0
|
|
9
|
+
palette = 8=#596377
|
|
10
|
+
palette = 9=#bf616a
|
|
11
|
+
palette = 10=#a3be8c
|
|
12
|
+
palette = 11=#ebcb8b
|
|
13
|
+
palette = 12=#81a1c1
|
|
14
|
+
palette = 13=#b48ead
|
|
15
|
+
palette = 14=#8fbcbb
|
|
16
|
+
palette = 15=#eceff4
|
|
17
|
+
background = #2e3440
|
|
18
|
+
foreground = #d8dee9
|
|
19
|
+
cursor-color = #eceff4
|
|
20
|
+
cursor-text = #282828
|
|
21
|
+
selection-background = #eceff4
|
|
22
|
+
selection-foreground = #4c566a
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#f2e9e1
|
|
2
|
+
palette = 1=#b4637a
|
|
3
|
+
palette = 2=#286983
|
|
4
|
+
palette = 3=#ea9d34
|
|
5
|
+
palette = 4=#56949f
|
|
6
|
+
palette = 5=#907aa9
|
|
7
|
+
palette = 6=#d7827e
|
|
8
|
+
palette = 7=#575279
|
|
9
|
+
palette = 8=#9893a5
|
|
10
|
+
palette = 9=#b4637a
|
|
11
|
+
palette = 10=#286983
|
|
12
|
+
palette = 11=#ea9d34
|
|
13
|
+
palette = 12=#56949f
|
|
14
|
+
palette = 13=#907aa9
|
|
15
|
+
palette = 14=#d7827e
|
|
16
|
+
palette = 15=#575279
|
|
17
|
+
background = #faf4ed
|
|
18
|
+
foreground = #575279
|
|
19
|
+
cursor-color = #575279
|
|
20
|
+
cursor-text = #faf4ed
|
|
21
|
+
selection-background = #dfdad9
|
|
22
|
+
selection-foreground = #575279
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#393552
|
|
2
|
+
palette = 1=#eb6f92
|
|
3
|
+
palette = 2=#3e8fb0
|
|
4
|
+
palette = 3=#f6c177
|
|
5
|
+
palette = 4=#9ccfd8
|
|
6
|
+
palette = 5=#c4a7e7
|
|
7
|
+
palette = 6=#ea9a97
|
|
8
|
+
palette = 7=#e0def4
|
|
9
|
+
palette = 8=#6e6a86
|
|
10
|
+
palette = 9=#eb6f92
|
|
11
|
+
palette = 10=#3e8fb0
|
|
12
|
+
palette = 11=#f6c177
|
|
13
|
+
palette = 12=#9ccfd8
|
|
14
|
+
palette = 13=#c4a7e7
|
|
15
|
+
palette = 14=#ea9a97
|
|
16
|
+
palette = 15=#e0def4
|
|
17
|
+
background = #232136
|
|
18
|
+
foreground = #e0def4
|
|
19
|
+
cursor-color = #e0def4
|
|
20
|
+
cursor-text = #232136
|
|
21
|
+
selection-background = #44415a
|
|
22
|
+
selection-foreground = #e0def4
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#1d202f
|
|
2
|
+
palette = 1=#f7768e
|
|
3
|
+
palette = 2=#9ece6a
|
|
4
|
+
palette = 3=#e0af68
|
|
5
|
+
palette = 4=#7aa2f7
|
|
6
|
+
palette = 5=#bb9af7
|
|
7
|
+
palette = 6=#7dcfff
|
|
8
|
+
palette = 7=#a9b1d6
|
|
9
|
+
palette = 8=#4e5575
|
|
10
|
+
palette = 9=#f7768e
|
|
11
|
+
palette = 10=#9ece6a
|
|
12
|
+
palette = 11=#e0af68
|
|
13
|
+
palette = 12=#7aa2f7
|
|
14
|
+
palette = 13=#bb9af7
|
|
15
|
+
palette = 14=#7dcfff
|
|
16
|
+
palette = 15=#c0caf5
|
|
17
|
+
background = #24283b
|
|
18
|
+
foreground = #c0caf5
|
|
19
|
+
cursor-color = #c0caf5
|
|
20
|
+
cursor-text = #1d202f
|
|
21
|
+
selection-background = #364a82
|
|
22
|
+
selection-foreground = #c0caf5
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#000000
|
|
2
|
+
palette = 1=#f2777a
|
|
3
|
+
palette = 2=#99cc99
|
|
4
|
+
palette = 3=#ffcc66
|
|
5
|
+
palette = 4=#6699cc
|
|
6
|
+
palette = 5=#cc99cc
|
|
7
|
+
palette = 6=#66cccc
|
|
8
|
+
palette = 7=#ffffff
|
|
9
|
+
palette = 8=#595959
|
|
10
|
+
palette = 9=#f2777a
|
|
11
|
+
palette = 10=#99cc99
|
|
12
|
+
palette = 11=#ffcc66
|
|
13
|
+
palette = 12=#6699cc
|
|
14
|
+
palette = 13=#cc99cc
|
|
15
|
+
palette = 14=#66cccc
|
|
16
|
+
palette = 15=#ffffff
|
|
17
|
+
background = #2d2d2d
|
|
18
|
+
foreground = #cccccc
|
|
19
|
+
cursor-color = #cccccc
|
|
20
|
+
cursor-text = #2d2d2d
|
|
21
|
+
selection-background = #515151
|
|
22
|
+
selection-foreground = #cccccc
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
palette = 0=#f0edec
|
|
2
|
+
palette = 1=#a8334c
|
|
3
|
+
palette = 2=#4f6c31
|
|
4
|
+
palette = 3=#944927
|
|
5
|
+
palette = 4=#286486
|
|
6
|
+
palette = 5=#88507d
|
|
7
|
+
palette = 6=#3b8992
|
|
8
|
+
palette = 7=#2c363c
|
|
9
|
+
palette = 8=#b5a7a0
|
|
10
|
+
palette = 9=#94253e
|
|
11
|
+
palette = 10=#3f5a22
|
|
12
|
+
palette = 11=#803d1c
|
|
13
|
+
palette = 12=#1d5573
|
|
14
|
+
palette = 13=#7b3b70
|
|
15
|
+
palette = 14=#2b747c
|
|
16
|
+
palette = 15=#4f5e68
|
|
17
|
+
background = #f0edec
|
|
18
|
+
foreground = #2c363c
|
|
19
|
+
cursor-color = #2c363c
|
|
20
|
+
cursor-text = #f0edec
|
|
21
|
+
selection-background = #cbd9e3
|
|
22
|
+
selection-foreground = #2c363c
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Landscape photos from Unsplash, free to use under the Unsplash License
|
|
2
|
+
# (https://unsplash.com/license; attribution appreciated, not required).
|
|
3
|
+
# Hotlinked from images.unsplash.com, sized per request by Rori::Wallpaper.
|
|
4
|
+
# Add an id (the part after "photo-" in an images.unsplash.com URL) to grow
|
|
5
|
+
# the pool; keep them landscape and calm enough to sit behind windows.
|
|
6
|
+
- 1418065460487-3e41a6c84dc5
|
|
7
|
+
- 1426604966848-d7adac402bff
|
|
8
|
+
- 1439066615861-d1af74d74000
|
|
9
|
+
- 1441974231531-c6227db76b6e
|
|
10
|
+
- 1447752875215-b2761acb3c5d
|
|
11
|
+
- 1454496522488-7a8e488e8606
|
|
12
|
+
- 1464822759023-fed622ff2c3b
|
|
13
|
+
- 1465146344425-f00d5f5c8f07
|
|
14
|
+
- 1469474968028-56623f02e42e
|
|
15
|
+
- 1470071459604-3b5ec3a7fe05
|
|
16
|
+
- 1470770841072-f978cf4d019e
|
|
17
|
+
- 1476514525535-07fb3b4ae5f1
|
|
18
|
+
- 1482192596544-9eb780fc7f66
|
|
19
|
+
- 1493246507139-91e8fad9978e
|
|
20
|
+
- 1501785888041-af3ef285b470
|
|
21
|
+
- 1506744038136-46273834b3fb
|
|
22
|
+
- 1507525428034-b723cf961d3e
|
|
23
|
+
- 1519681393784-d120267933ba
|