Error processing request
Parameters
CONTENT_LENGTH | 0 |
REQUEST_METHOD | GET |
REQUEST_URI | /revision/SnitXUrxvt?V=3 |
QUERY_STRING | V=3 |
CONTENT_TYPE | |
DOCUMENT_URI | /revision/SnitXUrxvt |
DOCUMENT_ROOT | /var/www/nikit/nikit/nginx/../docroot |
SCGI | 1 |
SERVER_PROTOCOL | HTTP/1.1 |
HTTPS | on |
REMOTE_ADDR | 172.70.179.142 |
REMOTE_PORT | 31510 |
SERVER_PORT | 4443 |
SERVER_NAME | wiki.tcl-lang.org |
HTTP_HOST | wiki.tcl-lang.org |
HTTP_CONNECTION | Keep-Alive |
HTTP_ACCEPT_ENCODING | gzip, br |
HTTP_X_FORWARDED_FOR | 3.138.110.105 |
HTTP_CF_RAY | 88cc92e28ca6636e-ORD |
HTTP_X_FORWARDED_PROTO | https |
HTTP_CF_VISITOR | {"scheme":"https"} |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected]) |
HTTP_REFERER | https://wiki.tcl.tk/revision/SnitXUrxvt?V=3 |
HTTP_CF_CONNECTING_IP | 3.138.110.105 |
HTTP_CDN_LOOP | cloudflare |
HTTP_CF_IPCOUNTRY | US |
Body
Error
Unknow state transition: LINE -> END
-code
1
-level
0
-errorstack
INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit SnitXUrxvt {**Widget wrapper on Linux Systems for easy embedding of the urxvt Terminal**
An easy wrapper for the lightweight surf webbrowser on Linux systems to embed an htmlviewer into Tcl/Tk applications .
Requires surf and xprop tools. Works on X but not on Wayland as Wayland does not support the Xembed protocol.
*** Links ***
* Urxvt: https://wiki.archlinux.org/index.php/Rxvt-unicode
* Changing Urxvt fonts on the fly: [https://wiki.archlinux.org/index.php/Rxvt-unicode#Changing_font_size_on_the_fly]
[WikiDBImage SnitXUrxvt.png]
Source Code:
======
package require Tk
package require snit
package provide SnitXUrxvt 0.1
snit::widget SnitXUrxvt {
option -multi 1,1
option -rxvtargs ""
constructor {args} {
$self configurelist $args
if {$options(-multi) eq "1,2" || $options(-multi) eq "1,3"} {
set pw1 [panedwindow $win.pw -orient horizontal]
set st1 [$self term $win.pw.st1]
set pw2 [panedwindow $win.pw.pw2 -orient vertical]
set st2 [$self term $win.pw.pw2.st2]
set st3 [$self term $win.pw.pw2.st3]
if {$options(-multi) eq "1,3"} {
set st4 [$self term $win.pw.pw2.st4]
}
pack $pw1 -side left -expand yes -fill both
$pw1 add $st1 $pw2
if {$options(-multi) eq "1,3"} {
$pw2 add $st2 $st3 $st4
} elseif {$options(-multi) eq "1,2"} {
$pw2 add $st2 $st3
}
} elseif {$options(-multi) eq "1"} {
set st1 [$self term $win.st1]
pack $st1 -side left -fill both -expand true
}
}
method term {w} {
frame $w -container 1
$w configure -width 100 -height 100
set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] {*}$options(-rxvtargs) &]
bind $w <Destroy> [list exec kill $pid]
return $w
}
}
if {$argv0 eq [info script]} {
if {[llength $argv] <= 1 } {
SnitXUrxvt .urxvt -multi 1,3 -rxvtargs "-fade 10 -cr red -sb -rv +bl"
pack .urxvt -side top -fill both -expand true
}
}
======
** Discussion **
[DDG] If you just need a embedded Terminal you can use a simple function.
======
package require Tk
proc urxvterm {w} {
frame $w -container 1
$w configure -width 100 -height 100
set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] &]
bind $w <Destroy> [list exec kill $pid]
return $w
}
pack [urxvterm .term] -side top -fill both -expand yes
=====
<<categories>> Application | Terminal | Snit Widgets | Snit} regexp2} CALL {my render SnitXUrxvt {**Widget wrapper on Linux Systems for easy embedding of the urxvt Terminal**
An easy wrapper for the lightweight surf webbrowser on Linux systems to embed an htmlviewer into Tcl/Tk applications .
Requires surf and xprop tools. Works on X but not on Wayland as Wayland does not support the Xembed protocol.
*** Links ***
* Urxvt: https://wiki.archlinux.org/index.php/Rxvt-unicode
* Changing Urxvt fonts on the fly: [https://wiki.archlinux.org/index.php/Rxvt-unicode#Changing_font_size_on_the_fly]
[WikiDBImage SnitXUrxvt.png]
Source Code:
======
package require Tk
package require snit
package provide SnitXUrxvt 0.1
snit::widget SnitXUrxvt {
option -multi 1,1
option -rxvtargs ""
constructor {args} {
$self configurelist $args
if {$options(-multi) eq "1,2" || $options(-multi) eq "1,3"} {
set pw1 [panedwindow $win.pw -orient horizontal]
set st1 [$self term $win.pw.st1]
set pw2 [panedwindow $win.pw.pw2 -orient vertical]
set st2 [$self term $win.pw.pw2.st2]
set st3 [$self term $win.pw.pw2.st3]
if {$options(-multi) eq "1,3"} {
set st4 [$self term $win.pw.pw2.st4]
}
pack $pw1 -side left -expand yes -fill both
$pw1 add $st1 $pw2
if {$options(-multi) eq "1,3"} {
$pw2 add $st2 $st3 $st4
} elseif {$options(-multi) eq "1,2"} {
$pw2 add $st2 $st3
}
} elseif {$options(-multi) eq "1"} {
set st1 [$self term $win.st1]
pack $st1 -side left -fill both -expand true
}
}
method term {w} {
frame $w -container 1
$w configure -width 100 -height 100
set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] {*}$options(-rxvtargs) &]
bind $w <Destroy> [list exec kill $pid]
return $w
}
}
if {$argv0 eq [info script]} {
if {[llength $argv] <= 1 } {
SnitXUrxvt .urxvt -multi 1,3 -rxvtargs "-fade 10 -cr red -sb -rv +bl"
pack .urxvt -side top -fill both -expand true
}
}
======
** Discussion **
[DDG] If you just need a embedded Terminal you can use a simple function.
======
package require Tk
proc urxvterm {w} {
frame $w -container 1
$w configure -width 100 -height 100
set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] &]
bind $w <Destroy> [list exec kill $pid]
return $w
}
pack [urxvterm .term] -side top -fill both -expand yes
=====
<<categories>> Application | Terminal | Snit Widgets | Snit}} CALL {my revision SnitXUrxvt} CALL {::oo::Obj86054 process revision/SnitXUrxvt} CALL {::oo::Obj86052 process}
-errorcode
NONE
-errorinfo
Unknow state transition: LINE -> END
while executing
"error $msg"
(class "::Wiki" method "render_wikit" line 6)
invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
(class "::Wiki" method "render" line 8)
invoked from within
"my render $name $C"
(class "::Wiki" method "revision" line 31)
invoked from within
"my revision $page"
(class "::Wiki" method "process" line 56)
invoked from within
"$server process [string trim $uri /]"
-errorline
4