Получить позицию элемента запуска в python

Вы можете скопировать каталог рекурсивно с помощью dd с помощью find и mkdir

Нам нужно обойти две проблемы:

dd не знает, что для каталогов dd можно копировать только один файл за раз

Сначала давайте определим директории ввода и вывода:

SOURCE="/media/source-dir"
TARGET="/media/target-dir"

Теперь давайте cd в исходный каталог, чтобы find будет сообщать относительные каталоги, с которыми мы можем легко манипулировать:

cd "$SOURCE"

Дублировать дерево каталогов с $SOURCE до $TARGET

find . -type d -exec mkdir -p "$TARGET{}" \;

Дублировать файлы из $SOURCE к $TARGET, опускающему кеш-запись (но используя кэш чтения!)

find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;

Обратите внимание, что это не будет сохранять время изменения файла, права собственности и другие атрибуты.

0
задан 8 July 2012 в 06:38

7 ответов

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 25 July 2018 в 18:09

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 2 August 2018 в 00:24

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 4 August 2018 в 15:52

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 6 August 2018 в 00:31

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 7 August 2018 в 17:55

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 10 August 2018 в 06:45

Это то, что я смог выяснить, хотя это не так удовлетворительно, как просто получить координаты x, y.

Вы можете получить упорядоченный список элементов панели запуска, находящихся в данный момент на панели, затем найти индекс списка модулей запуска в списке и умножить на размер значка + некоторые отступы для верхней панели и интервал между значками, чтобы получить приблизительно y координат.

См. код ниже. Я надеюсь, что это поможет любому, кто может искать способ сделать это.

    from gi.repository import Unity
    import gconf

    #Get Icon size
    LF_ICONSIZE=gconf.client_get_default().get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size')

    LF_ICONPADDING=10 # Guesstimate
    PANEL_HEIGHT=16  # Guesstimate, will depend on fontsize. Don't know where to get this
    #Use unity api to get a list of launcher panel items  
    lf=Unity.LauncherFavorites.get_default().enumerate_ids()

    #Find the position of my .desktop file 
    #(add 2 for the dash icon and because lists start at 0)
    pos=lf.index('nautilus.desktop') + 2

    #calculate approximate y coordinate
    y = pos * (LF_ICONSIZE + LF_ICONPADDING) + PANEL_HEIGHT
0
ответ дан 15 August 2018 в 18:39

Другие вопросы по тегам:

Похожие вопросы: