Cinnamon: рд╡рд┐рд╖рдп рдореЗрдВ рдорд╛рд░реНрдЬрд┐рди-рд╕реЗ-рдЯреЙрдк-рдПрдЬ-рдСрдл-рд╕реНрдХреНрд░реАрди #рд╕реВрдЪрдирд╛ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдмрджрд▓рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдорд╛рд░реНрдЪ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: linuxmint/cinnamon

рдореИрдВ рдпрд╣рд╛рдВ http://www.webupd8.org/2012/06/how-to-change-notifications-position-in.html рдЬреИрд╕реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреЙрдкрдЕрдк рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди margin-from-top-edge-of-screen рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд margin-from-right-edge-of-screen рдмрджрд▓рдирд╛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ Linux Mint рдереАрдо рдХреЗ рд╕рд╛рде Linux рдЯрдХрд╕рд╛рд▓ 17.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА

#notification {
font-size: 8.5pt;
border-radius: 10px 10px 10px 10px;
border: 2px solid rgba(214,214,214,0.5);
background-gradient-direction: vertical;
background-gradient-start: rgba(66,66,66,0.9);
background-gradient-end: rgba(55,55,55,0.9);
padding: 8px 8px 8px 8px;
spacing-rows: 10px;
spacing-columns: 10px;
margin-from-right-edge-of-screen: 80px;  
margin-from-top-edge-of-screen: 350px;
width: 34em;
color: white;    
/* The px are a temporary fix until get_theme_node() can return raw numbers. */
opacity:255px;
mouseover-opacity:96px
}

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ margin-from-top-edge-of-screen рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЗрд╕ рдкреЙрдкрдЕрдк рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо/рдЕрдзрд┐рдХрддрдо/рдмрдВрдж рдмрдЯрди рд╕реЗ рдЕрдзрд┐рдХ рди рд╣реЛ? рдкреЙрдкрдЕрдк рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд░рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ...

// рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдорд┐рд▓рд╛, /usr/share/cinnamon/js/ui/messageTray.js :

_onNotificationExpanded: function() {
    let expandedY = this._notification.actor.height - this._notificationBin.height;
    // Don't animate the notification to its new position if it has shrunk:
    // there will be a very visible "gap" that breaks the illusion.

    // This isn't really working at the moment, but it was just crashing before
    // if it encountered a critical notification.  expandedY is always 0.  For now
    // just make sure it's not covering the top panel if there is one.

    let monitor = Main.layoutManager.primaryMonitor;
    let panel = Main.panelManager.getPanel(0, false); // We only want the top panel in monitor 0
    let height = 5;
    if (panel)
        height += panel.actor.get_height();
    let newY = monitor.y + height + 50; // ADDED 50 HERE SO POPUP IS NOT OVER WINDOW CONTROLS

    if (this._notificationBin.y < expandedY)
        this._notificationBin.y = expandedY;
    else if (this._notification.y != expandedY)
        this._tween(this._notificationBin, '_notificationState', State.SHOWN,
                    { y: newY,
                      time: ANIMATION_TIME,
                      transition: 'easeOutQuad'
                    });

},

рджрд╛рд▓рдЪреАрдиреА рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреАред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдорд╛рд░реНрдЬрд┐рди-рд╕реЗ-рдЯреЙрдк-рдПрдЬ-рдСрдл-рд╕реНрдХреНрд░реАрди рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред рдРрд╕реА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рджрд╛рд▓рдЪреАрдиреА рд╕рд┐рд░реНрдл рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реА рд╣реИред рдЖрдкрдиреЗ рдЬрд┐рд╕ рдкреЛрд╕реНрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд░рд╛рдиреА рд╣реИред рддрдм рд╕реЗ рдЪреАрдЬреЗрдВ рд╢рд╛рдпрдж рдмрджрд▓ рдЧрдИ рд╣реИрдВред

рдареАрдХ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЗрд╕ рдкреЙрдкрдЕрдк рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо/рдЕрдзрд┐рдХрддрдо/рдмрдВрдж рдмрдЯрди рд╕реЗ рдЕрдзрд┐рдХ рди рд╣реЛ? рдкреЙрдкрдЕрдк рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд░рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ...

// рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдорд┐рд▓рд╛, /usr/share/cinnamon/js/ui/messageTray.js :

_onNotificationExpanded: function() {
    let expandedY = this._notification.actor.height - this._notificationBin.height;
    // Don't animate the notification to its new position if it has shrunk:
    // there will be a very visible "gap" that breaks the illusion.

    // This isn't really working at the moment, but it was just crashing before
    // if it encountered a critical notification.  expandedY is always 0.  For now
    // just make sure it's not covering the top panel if there is one.

    let monitor = Main.layoutManager.primaryMonitor;
    let panel = Main.panelManager.getPanel(0, false); // We only want the top panel in monitor 0
    let height = 5;
    if (panel)
        height += panel.actor.get_height();
    let newY = monitor.y + height + 50; // ADDED 50 HERE SO POPUP IS NOT OVER WINDOW CONTROLS

    if (this._notificationBin.y < expandedY)
        this._notificationBin.y = expandedY;
    else if (this._notification.y != expandedY)
        this._tween(this._notificationBin, '_notificationState', State.SHOWN,
                    { y: newY,
                      time: ANIMATION_TIME,
                      transition: 'easeOutQuad'
                    });

},

рджрд╛рд▓рдЪреАрдиреА рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреАред

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рдореБрджреНрджрд╛ рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рднреА рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рдЦреБрд▓реЗ рдореБрджреНрджреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bittner picture bittner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NikoKrause picture NikoKrause  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

trymeouteh picture trymeouteh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Vahan86 picture Vahan86  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

leigh123linux picture leigh123linux  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ