Fix persistence and update deprecated dependencies

This commit is contained in:
2026-07-07 13:58:25 +01:00
parent 7460d38653
commit 3eb15736f3
3 changed files with 21 additions and 18 deletions
+4 -4
View File
@@ -18,10 +18,10 @@
gcc gcc
pkg-config pkg-config
xorg.libxcb libxcb
xorg.xcbutilwm xcbutilwm
xorg.xrandr xrandr
xorg.xprop xprop
]; ];
shellHook = '' shellHook = ''
+10 -7
View File
@@ -2,7 +2,10 @@
, ruby , ruby
, makeWrapper , makeWrapper
, pkg-config , pkg-config
, xorg , libxcb
, xcbutilwm
, xrandr
, xprop
, rubyPackages , rubyPackages
, gcc , gcc
, lib , lib
@@ -24,10 +27,10 @@ stdenv.mkDerivation {
(ruby.withPackages (ps: [ (ruby.withPackages (ps: [
ps.ffi ps.ffi
])) ]))
xorg.libxcb libxcb
xorg.xcbutilwm xcbutilwm
xorg.xrandr xrandr
xorg.xprop xprop
]; ];
buildPhase = '' buildPhase = ''
@@ -53,8 +56,8 @@ stdenv.mkDerivation {
wrapProgram $out/bin/kutu.rb \ wrapProgram $out/bin/kutu.rb \
--prefix PATH : ${lib.makeBinPath [ --prefix PATH : ${lib.makeBinPath [
xorg.xrandr xrandr
xorg.xprop xprop
]} ]}
''; '';
} }
+7 -7
View File
@@ -1,3 +1,7 @@
persistence_dir = File.join(ENV["XDG_STATE_HOME"] || File.expand_path("~/.local/state"), "kutu")
Dir.mkdir(persistence_dir) unless Dir.exist?(persistence_dir)
persistence_path = File.join(persistence_dir, "num.json")
presets = { presets = {
normal: [0, X.clk], normal: [0, X.clk],
mod: [X.mod, X.mod | X.clk] mod: [X.mod, X.mod | X.clk]
@@ -95,25 +99,23 @@ end
keybind 56, presets[:mod] do |_event| keybind 56, presets[:mod] do |_event|
monitor = current_monitor monitor = current_monitor
create_workspace monitor create_workspace monitor
persistence_path = File.join(__dir__, ".num.json")
persistence = File.exist?(persistence_path) ? persistence = File.exist?(persistence_path) ?
JSON.parse(File.read(persistence_path), symbolize_names: true) : JSON.parse(File.read(persistence_path), symbolize_names: true) :
{} {}
persistence[$monitors.key(monitor)] ||= {} persistence[$monitors.key(monitor)] ||= {}
persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length
#File.write(persistence_path, JSON.pretty_generate(persistence)) File.write(persistence_path, JSON.pretty_generate(persistence))
end end
keybind 57, presets[:mod] do |_event| keybind 57, presets[:mod] do |_event|
monitor = current_monitor monitor = current_monitor
delete_workspace monitor[:workspaces].length - 1, monitor delete_workspace monitor[:workspaces].length - 1, monitor
persistence_path = File.join(__dir__, ".num.json")
persistence = File.exist?(persistence_path) ? persistence = File.exist?(persistence_path) ?
JSON.parse(File.read(persistence_path), symbolize_names: true) : JSON.parse(File.read(persistence_path), symbolize_names: true) :
{} {}
persistence[$monitors.key(monitor)] ||= {} persistence[$monitors.key(monitor)] ||= {}
persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length
#File.write(persistence_path, JSON.pretty_generate(persistence)) File.write(persistence_path, JSON.pretty_generate(persistence))
end end
keybind 110, presets[:normal] do |_event| keybind 110, presets[:normal] do |_event|
@@ -134,7 +136,6 @@ end
keybind 89, presets[:mod] do |_event| keybind 89, presets[:mod] do |_event|
monitor = current_monitor monitor = current_monitor
persistence_path = File.join(__dir__, ".num.json")
persistence = File.exist?(persistence_path) ? persistence = File.exist?(persistence_path) ?
JSON.parse(File.read(persistence_path), symbolize_names: true) : JSON.parse(File.read(persistence_path), symbolize_names: true) :
{} {}
@@ -143,14 +144,13 @@ keybind 89, presets[:mod] do |_event|
else else
persistence[$monitors.key(monitor)] ||= {} persistence[$monitors.key(monitor)] ||= {}
persistence[$monitors.key(monitor)][:saved] = monitor[:selected_workspace] persistence[$monitors.key(monitor)][:saved] = monitor[:selected_workspace]
#File.write(persistence_path, JSON.pretty_generate(persistence)) File.write(persistence_path, JSON.pretty_generate(persistence))
select_workspace 0, monitor select_workspace 0, monitor
end end
end end
keybind 81, presets[:mod] do |event| keybind 81, presets[:mod] do |event|
monitor = current_monitor monitor = current_monitor
persistence_path = File.join(__dir__, ".num.json")
persistence = File.exist?(persistence_path) ? persistence = File.exist?(persistence_path) ?
JSON.parse(File.read(persistence_path), symbolize_names: true) : JSON.parse(File.read(persistence_path), symbolize_names: true) :
{} {}