Announcement

Collapse
No announcement yet.

Kubuntu video wallpaper

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MoonRise
    replied
    This needs to be Stickied or placed in How To.

    Leave a comment:


  • OneLine
    replied
    Quick SDDM Video theme

    Linking to https://www.kubuntuforums.net/showth...l=1#post371491


    Copying

    'Maledives' theme from /usr/share/sddm/themes/maldives/ to ~/sddm/mysddm/.




    Edit:

    metadata.desktop:
    Code:
    [SddmGreeterTheme]
    Name=MySDDM
    Description=My Theme
    Author=Me
    Copyright=(c) 2015 Me
    License=CC-BY-SA
    Type=sddm-theme
    Version=0.1
    Website=https://www.kubuntuforums.net/showthread.php?67703-Kubuntu-video-wallpaper
    Screenshot=preview.jpg
    MainScript=Main.qml
    ConfigFile=theme.conf
    TranslationsDirectory=translations
    Email=
    Theme-Id=mysddm
    Theme-API=2.0
    Main.qml:
    Code:
    /***************************************************************************
    * Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
    *
    * Permission is hereby granted, free of charge, to any person
    * obtaining a copy of this software and associated documentation
    * files (the "Software"), to deal in the Software without restriction,
    * including without limitation the rights to use, copy, modify, merge,
    * publish, distribute, sublicense, and/or sell copies of the Software,
    * and to permit persons to whom the Software is furnished to do so,
    * subject to the following conditions:
    *
    * The above copyright notice and this permission notice shall be included
    * in all copies or substantial portions of the Software.
    *
    * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
    * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
    * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
    * OR OTHER DEALINGS IN THE SOFTWARE.
    *
    ***************************************************************************/
    
    import QtQuick 2.0
    import SddmComponents 2.0
    import QtMultimedia 5.0
    
    Rectangle {
        id: container
        width: 640
        height: 480
    
        TextConstants { id: textConstants }
    
        Connections {
            target: sddm
    
            onLoginSucceeded: {
                errorMessage.color = "steelblue"
                errorMessage.text = textConstants.loginSucceeded
            }
    
            onLoginFailed: {
                errorMessage.color = "red"
                errorMessage.text = textConstants.loginFailed
            }
        }
    
    
        property int stage
    
        MediaPlayer {
            id: mediaplayer
            autoPlay: true
            loops: MediaPlayer.Infinite
            source: "video/Beach.avi"
        }
    
        VideoOutput {
            fillMode: VideoOutput.PreserveAspectCrop
            anchors.fill: parent
            source: mediaplayer
        }
    
    
        Rectangle {
            property variant geometry: screenModel.geometry(screenModel.primary)
            x: geometry.x; y: geometry.y; width: geometry.width; height: geometry.height
            color: "transparent"
    
            Clock {
                id: clock
                anchors.margins: 5
                anchors.top: parent.top; anchors.right: parent.right
    
                color: "white"
                timeFont.family: "Oxygen"
            }
    
            Image {
                id: rectangle
                anchors.centerIn: parent
                width: Math.max(320, mainColumn.implicitWidth + 50)
                height: Math.max(320, mainColumn.implicitHeight + 50)
    
                source: "rectangle.png"
    
                Column {
                    id: mainColumn
                    anchors.centerIn: parent
                    spacing: 12
                    Text {
                        anchors.horizontalCenter: parent.horizontalCenter
                        color: "black"
                        verticalAlignment: Text.AlignVCenter
                        height: text.implicitHeight
                        width: parent.width
                        text: textConstants.welcomeText.arg(sddm.hostName)
                        wrapMode: Text.WordWrap
                        font.pixelSize: 24
                        elide: Text.ElideRight
                        horizontalAlignment: Text.AlignHCenter
                    }
    
                    Column {
                        width: parent.width
                        spacing: 4
                        Text {
                            id: lblName
                            width: parent.width
                            text: textConstants.userName
                            font.bold: true
                            font.pixelSize: 12
                        }
    
                        TextBox {
                            id: name
                            width: parent.width; height: 30
                            text: userModel.lastUser
                            font.pixelSize: 14
    
                            KeyNavigation.backtab: rebootButton; KeyNavigation.tab: password
    
                            Keys.onPressed: {
                                if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
                                    sddm.login(name.text, password.text, session.index)
                                    event.accepted = true
                                }
                            }
                        }
                    }
    
                    Column {
                        width: parent.width
                        spacing : 4
                        Text {
                            id: lblPassword
                            width: parent.width
                            text: textConstants.password
                            font.bold: true
                            font.pixelSize: 12
                        }
    
                        PasswordBox {
                            id: password
                            width: parent.width; height: 30
                            font.pixelSize: 14
    
                            KeyNavigation.backtab: name; KeyNavigation.tab: session
    
                            Keys.onPressed: {
                                if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
                                    sddm.login(name.text, password.text, session.index)
                                    event.accepted = true
                                }
                            }
                        }
                    }
    
                    Row {
                        spacing: 4
                        width: parent.width / 2
                        z: 100
    
                        Column {
                            z: 100
                            width: parent.width * 1.3
                            spacing : 4
                            anchors.bottom: parent.bottom
    
                            Text {
                                id: lblSession
                                width: parent.width
                                text: textConstants.session
                                wrapMode: TextEdit.WordWrap
                                font.bold: true
                                font.pixelSize: 12
                            }
    
                            ComboBox {
                                id: session
                                width: parent.width; height: 30
                                font.pixelSize: 14
    
                                arrowIcon: "angle-down.png"
    
                                model: sessionModel
                                index: sessionModel.lastIndex
    
                                KeyNavigation.backtab: password; KeyNavigation.tab: layoutBox
                            }
                        }
    
                        Column {
                            z: 101
                            width: parent.width * 0.7
                            spacing : 4
                            anchors.bottom: parent.bottom
    
                            Text {
                                id: lblLayout
                                width: parent.width
                                text: textConstants.layout
                                wrapMode: TextEdit.WordWrap
                                font.bold: true
                                font.pixelSize: 12
                            }
    
                            LayoutBox {
                                id: layoutBox
                                width: parent.width; height: 30
                                font.pixelSize: 14
    
                                arrowIcon: "angle-down.png"
    
                                KeyNavigation.backtab: session; KeyNavigation.tab: loginButton
                            }
                        }
                    }
    
                    Column {
                        width: parent.width
                        Text {
                            id: errorMessage
                            anchors.horizontalCenter: parent.horizontalCenter
                            text: textConstants.prompt
                            font.pixelSize: 10
                        }
                    }
    
                    Row {
                        spacing: 4
                        anchors.horizontalCenter: parent.horizontalCenter
                        property int btnWidth: Math.max(loginButton.implicitWidth,
                                                        shutdownButton.implicitWidth,
                                                        rebootButton.implicitWidth, 80) + 8
                        Button {
                            id: loginButton
                            text: textConstants.login
                            width: parent.btnWidth
    
                            onClicked: sddm.login(name.text, password.text, session.index)
    
                            KeyNavigation.backtab: layoutBox; KeyNavigation.tab: shutdownButton
                        }
    
                        Button {
                            id: shutdownButton
                            text: textConstants.shutdown
                            width: parent.btnWidth
    
                            onClicked: sddm.powerOff()
    
                            KeyNavigation.backtab: loginButton; KeyNavigation.tab: rebootButton
                        }
    
                        Button {
                            id: rebootButton
                            text: textConstants.reboot
                            width: parent.btnWidth
    
                            onClicked: sddm.reboot()
    
                            KeyNavigation.backtab: shutdownButton; KeyNavigation.tab: name
                        }
                    }
                }
            }
        }
    
        Component.onCompleted: {
            if (name.text == "")
                name.focus = true
            else
                password.focus = true
        }
    }
    Adding:

    preview.jpg

    video sub directory


    Testing:

    Code:
    sddm-greeter --test-mode --theme /home/oneline/sddm/mysddm


    Seems to work


    Installing & Testing2

    Copying /mysddm/ to /usr/share/sddm/themes/mysddm/

    KDE System Settings > Startup and Shutdown > Login Screen (SDDM)



    Reboot

    Log in

    Seems to work (at here).
    Last edited by OneLine; May 01, 2015, 04:08 PM.

    Leave a comment:


  • OneLine
    replied
    KDE video splash

    Earlier: https://www.kubuntuforums.net/showth...l=1#post370231


    Making org.me.video.desktop:



    Metadata:

    Code:
    [Desktop Entry]
    Comment=Video Desktop Design
    Comment[x-test]=xxVideo Desktop Designxx
    Encoding=UTF-8
    Keywords=Desktop;Workspace;Appearance;Look and Feel;Logout;Lock;Suspend;Shutdown;Hibernate;
    Keywords[x-test]=xxDesktopxx;xxWorkspacexx;xxAppearancexx;xxLook and Feelxx;xxLogoutxx;xxLockxx;xxSuspendxx;xxShutdownxx;xxHibernatexx;
    Name=Video Splash
    
    Type=Service
    
    X-KDE-ServiceTypes=Plasma/LookAndFeel
    X-KDE-ParentApp=
    X-KDE-PluginInfo-License=GPLv2+
    X-KDE-PluginInfo-Name=org.me.video.desktop
    X-KDE-PluginInfo-Version=0.1
    X-Plasma-MainScript=defaults
    and Splash.qml:

    Code:
    /*
     * This is based on the standard breeze splash !
     *
     *   Copyright 2014 Marco Martin <mart@kde.org>
     *
     *   This program is free software; you can redistribute it and/or modify
     *   it under the terms of the GNU General Public License version 2,
     *   or (at your option) any later version, as published by the Free
     *   Software Foundation
     *
     *   This program is distributed in the hope that it will be useful,
     *   but WITHOUT ANY WARRANTY; without even the implied warranty of
     *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     *   GNU General Public License for more details
     *
     *   You should have received a copy of the GNU General Public
     *   License along with this program; if not, write to the
     *   Free Software Foundation, Inc.,
     *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
     */
    
    import QtQuick 2.1
    import QtMultimedia 5.0
    
    
    Rectangle {
        id: root
    
        property int stage
    
        MediaPlayer {
            id: mediaplayer
            autoPlay: true
            loops: MediaPlayer.Infinite
            source: "video/Beach.avi"
        }
    
        VideoOutput {
            fillMode: VideoOutput.PreserveAspectCrop
            anchors.fill: parent
            source: mediaplayer
        }
    
        Rectangle {
            id: bottomRect
            width: parent.width
            y: 2/3 * parent.height
            height: 50
            color: "#4C000000"
    
            Rectangle {
                radius: 3
                color: "darkgrey"
                anchors.centerIn: parent
                height: 8
                width: height*32
                Rectangle {
                    radius: 3
                    anchors {
                        left: parent.left
                        top: parent.top
                        bottom: parent.bottom
                    }
                    width: (parent.width / 6) * (stage - 1)
                    color: "steelblue"
                    Behavior on width { 
                        PropertyAnimation {
                            duration: 250
                            easing.type: Easing.InOutQuad
                        }
                    }
                }
            }
        }
    }

    Installing:

    Code:
    plasmapkg2 -t lookandfeel -i org.me.video.desktop

    Testing:



    Direct: http://youtu.be/FL1X1X5q05Q

    Seems to work (at here).
    Last edited by OneLine; Apr 11, 2015, 12:54 PM.

    Leave a comment:


  • vinnywright
    replied
    that is so cool ,,,,,,,I just did a video wallpaper of a screen capture of the desktop ,,,,,,,,he he ,,,,looks like somebody is doing things remotely

    burns a lot of CPU,,,,,,,but it is a 1080p .mp4 though,,,,,,,,,so

    VINNY

    Leave a comment:


  • claydoh
    replied
    Neat

    Leave a comment:


  • OneLine
    started a topic Kubuntu video wallpaper

    Kubuntu video wallpaper

    (With the Kubuntu 15.04 beta)

    With the KDE4 there is the 'DreamDesktop': http://kde-apps.org/content/show.php...content=156787

    More of the KDE video wallpapers: https://forum.kde.org/viewtopic.php?f=83&t=119463

    With the Plasma5 the video wallpaper is easy to make with the qml mediaplayer: http://doc.qt.io/qt-5/qml-qtmultimed...r.html#details .


    Making directory:

    ~/.local/share/plasma/wallpapers/org.kde.beach/contents/ui/

    Making files:

    ~/.local/share/plasma/wallpapers/org.kde.beach/metadata.desktop
    Code:
    [Desktop Entry]
    Encoding=UTF-8
    Name=Beach
    Name[x-test]=xxBeachxx
    
    Type=Service
    ServiceTypes=Plasma/DeclarativeWallpaper
    Icon=preferences-desktop-wallpaper
    X-Plasma-MainScript=ui/main.qml
    X-KDE-PluginInfo-Name=org.kde.beach
    X-KDE-PluginInfo-EnabledByDefault=true

    ~/.local/share/plasma/wallpapers/org.kde.beach/contents/ui/main.qml
    Code:
    import QtQuick 2.0
    import QtMultimedia 5.0
    
    Item {
        MediaPlayer {
            id: mediaplayer
            autoPlay: true
            loops: MediaPlayer.Infinite
            source: "/home/online/Videos/Beach.avi"
        }
    
        VideoOutput {
            fillMode: VideoOutput.PreserveAspectCrop
            anchors.fill: parent
            source: mediaplayer
        }
    }



    This should work as it is - if it doesn't try with the qmlscene to get the error messages: https://www.kubuntuforums.net/showth...ma-qml-widgets .

    At here: http://pastebin.com/nsmvE7Uw

    There is a bug report: https://bugreports.qt.io/browse/QTBUG-40183 The gstreamer0.10-ffmpeg plugin may help, here it does. Either from the http://gstreamer.freedesktop.org/mod...st-ffmpeg.html or from a PPA ( https://launchpad.net/ubuntu/+ppas?n...mer0.10-ffmpeg ).


    Right click the desktop > Desktop setting > Wallpaper Type (Video) > Apply > Ok...



    Direct: http://youtu.be/PNu9AoP1V8E


    More plasma 5 links: https://www.kubuntuforums.net/showth...ma-qml-widgets
    Last edited by OneLine; Mar 29, 2015, 10:16 AM.
Working...
X