2016-12-20 7 views
0

내 Awesome Window Manager를 사용자 정의하여 태그 번호를 로마 숫자로 변경하려고합니다 (1은 I, 2는 II ...). 이것을 달성하기 위해 /etc/xdg/awesome/rc.lua 파일, 특히 {{tags}} 섹션을 수정합니다. 나는 그가 의지의 태그 이름을 편집 할 관리하는 this blog post을 발견AwesomeWM 태그 이름을 변경하는 방법은 무엇입니까?

은 왼쪽 상단을 살펴 있습니다

detail of the tag modification

가 나는 또한 주제에 부착 된 rc.lua file 읽기를하고, 내가하고 싶은 일에 사용 된 기술이 일부 테이블과 결합 된 for 루프라는 것을 깨달았다. 당신이 볼 수 있듯이, 그들은 꽤 있습니다

-- {{{ Tags 
-- Define a tag table which hold all screen tags. 
tags = {} 
tagnames = { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", } 
taglayouts = { 
     awful.layout.suit.tile.top, 
     awful.layout.suit.tile.bottom, 
     awful.layout.suit.floating, 
     awful.layout.suit.fair, 
     awful.layout.suit.floating, 
     awful.layout.suit.floating } 

for s = 1, screen.count() do 
    -- Each screen has its own tag table. 
    -- tags[s] = awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8",$ 

     tags[s] = {} 

     for tagnumber = 1, 9 do 
       tags[s][tagnumber] = tag(tagnames[tagnumber]) 
       tags[s][tagnumber].screen = s 
       awful.layout.set(taglayouts[tagnumber], tags[s][tagnumber]) 
     end 

     tags[s][1].selected = true 
end 
--- }}} 

:

이 파일에 대한 관심의 코드입니다 :

-- {{{ Tags 
-- Define a tag table which hold all screen tags. 
tags = {} 
tagnames = { "irc", "mpd", "net", "usr", "png", "msg", } 
taglayouts = { 
     awful.layout.suit.tile.top, 
     awful.layout.suit.tile.bottom, 
     awful.layout.suit.floating, 
     awful.layout.suit.fair, 
     awful.layout.suit.floating, 
     awful.layout.suit.floating } 

for s = 1, screen.count() do 
    -- Each screen has its own tag table. 
    tags[s] = {} 
    for tagnumber = 1, 6 do 
     -- Add tags and name them. 
     tags[s][tagnumber] = tag(tagnames[tagnumber]) 
     -- Add tags to screen one by one, giving them their layouts at the same time. 
     tags[s][tagnumber].screen = s 
     awful.layout.set(taglayouts[tagnumber], tags[s][tagnumber]) 
    end 
    -- I'm sure you want to see at least one tag. 
    tags[s][1].selected = true 
end 
-- }}} 

는 ...이 내 rc.lua 파일입니다 차이점은 6 개 대신 9 개의 태그가 있다는 것입니다 (코드를 변경했습니다). 내가 Xephyr를 사용하여 설정을 디버깅 할 때 오류가 콘솔에 나타나고 난 단지 내 벽지 볼 수 있어요 : 오류가 어디 있는지 감지 할 수 없습니다 나처럼

error while running function 
stack traceback: 
    [C]: in global 'tag' 
    /etc/xdg/awesome/rc.lua:100: in main chunk 
error: /etc/xdg/awesome/rc.lua:100: bad argument #2 to 'tag' (table expected, got string) 
error while running function 
stack traceback: 
    [C]: in global 'tag' 
    /etc/xdg/awesome/rc.lua:100: in main chunk 
error: /etc/xdg/awesome/rc.lua:100: bad argument #2 to 'tag' (table expected, got string) 
E: awesome: main:605: couldn't find any rc file 

은 내가 볼 수 없습니다를 오류 라인 tags[s][tagnumber] = tag(tagnames[tagnumber])에있는 모든 언어 위반 : 태그 배열을 사용자 정의 이름으로 채우고 임의의 문자열이 아닌 태그로 처리하도록 알려줍니다.

업데이트 : 나는 태그 레이아웃에 6 개의 레이아웃이 있다는 사실을 깨달았습니다. 원래의 Lua 파일에있는 태그와 동일한 번호입니다. 나는 9 개의 태그 레이아웃을 가져야한다고 생각하지만 어느 것을 추가해야하는지 모른다. 또한 오류 행은 레이아웃 목록과 관련이 없기 때문에 코드를 제대로 컴파일하는 데있어 중요한 장애물은 아닙니다.

업데이트 2 :awful.layout.suit.floating에서 taglayouts까지 3 개가 더 추가되었습니다. 같은 오류.

+0

오류는 언어 위반이 아닙니다. 오류는'테이블에 예상 됨, 문자열이 있습니다. '라는 오류가있어서 문제는 테이블 대신 문자열을 전달한다는 것입니다. 나는 당신이 따르고있는 튜토리얼에서 그들이하는 일을 볼 수 있지만, 모든 파일은 적어도 1 년 이상 된 것입니다. 문서를 보면, 그것은'mytagone = tag ({name = "one"})'형태로되어 있어야합니다. – DavisDude

+0

사이드 노트,'/ etc/xdg/awesome/rc.lua'를 편집하지 말고, ~/.config/awesome/rc.lua' – Camusensei

+0

그럼 내 코드는 어떻게해야합니까? – xvlaze

답변

2

, 나는 내 {태그} 섹션을 대체했다. 이는 동일한 태그를 작성하려는 경우에만 유용하지만, i 정의를 입력하는 것보다 훨씬 더 깔끔합니다.

훨씬 더 깨끗 WAY :

초기 솔루션은 유용하지만 문제가 있었다 : AwesomeWM를 시작할 때, 당신은 정의 태그에 표시되지만되지 않습니다에서 모두에서 같은 시간. 즉, 터미널을 열면 이전에 Mod4 + TagNum (기본 conf 다음)으로 터미널을 선택하지 않는 한 모든 태그에 터미널이 열립니다.

이 문제를 해결하기 위해 기본 구성 파일을 수정 된 파일과 비교하여 기본 파일에서 모두 잘 작동한다는 것을 알았습니다. 그래서 해결책을 찾기 위해 코드를 수정하기 시작했습니다. 기본적으로 기본 코드를 최소한으로 수정하면 원하는대로 태그 이름을 사용자 정의 할 수 있다는 것을 알게되었습니다. 이것이 내가 한 방법입니다.

-- {{{ Tags 
tags = {} 
-- Generates tags with custom names 
for s = 1, screen.count() do 
     tags[s] = awful.tag({ "I", "II", "III", "IV", "V", "VI", "VII", "IX" }), 
end 
-- }}} 

P.S. 누군가가 코드를 다른 용도로 사용하기를 원한다면 이전 솔루션을 유지합니다.

1

아직 공식적인 답변을하지만, 어제 나는이에 대한 자세한 문서를 썼다 :

https://github.com/awesomeWM/awesome/pull/1279/files#diff-df495cc7fcbd48cd2698645bca070ff9R39

그것은 굉장 4.0이지만,이 경우에 많이 변경되지, 그래서 예를 거의 유효합니다 (gap 속성은 3.4/3.5에서 사용할 수 없습니다).

또한 복잡한 태그를 설정하려는 경우 내 Tyrannical 모듈 (굉장 3.5 이상) 또는 쉰 (굉장한 3.2-3.4)을 제안합니다. 이 작업을 훨씬 쉽게 할 수 있도록 설계되었습니다. 이것은 내가에게 태그의 수를 생성

-- {{{ Tags 
-- Define a tag table which hold all screen tags. 

tagnum = { "I", "II", "III", "IV", "V", "VI", "VII", 
"VIII", "IX" } 

for i = 1, 9 do 
awful.tag.add((tagnum[i]), { 
     layout = awful.layout.suit.tile, 
     master_fill_policy = "master_width_factor", 
     gap_single_client = true, 
     gap = 15, 
     screen = s, 
}) 

end 

-- }}} 

, 자신의 이름이 tagnum 테이블에 정의 : 다른 답변에 따라