Skip to content

Instantly share code, notes, and snippets.

@chpatrick
Last active January 8, 2023 08:59

Revisions

  1. chpatrick revised this gist Jan 8, 2019. 1 changed file with 7 additions and 6 deletions.
    13 changes: 7 additions & 6 deletions flashback-xmonad.nix
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,15 @@
    {

    services.displayManager.extraSessionFilePackages =
    let gnome-flashback-xmonad = pkgs.callPackage ({ stdenv, gnome3, bash, haskellPackages }: stdenv.mkDerivation {
    let gnome-flashback-xmonad = pkgs.callPackage ({ stdenv, gnome3, bash, haskellPackages, glib, wrapGAppsHook }: stdenv.mkDerivation {
    name = "gnome-flashback-xmonad";

    buildDepends = [ gnome3.gnome-flashback gnome3.gnome-panel bash haskellPackages.xmonad ];
    buildInputs = [ gnome3.gnome-flashback gnome3.gnome-panel bash haskellPackages.xmonad glib ];
    nativeBuildInputs = [ wrapGAppsHook ];

    buildCommand = ''
    unpackPhase = "true";

    installPhase = ''
    mkdir -p $out/libexec
    cat << EOF > $out/libexec/gnome-flashback-xmonad
    #!${bash}/bin/sh
    @@ -15,9 +18,7 @@ services.displayManager.extraSessionFilePackages =
    export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
    fi
    export XDG_DATA_DIRS=$out/share:${gnome3.gnome-flashback}/share:${gnome3.gnome-flashback}/share/gsettings-schemas/gnome-flashback-3.28.0:${gnome3.gnome-panel}/share:${gnome3.metacity}/share:\$XDG_DATA_DIRS
    exec ${gnome3.gnome-session}/bin/gnome-session --session=gnome-flashback-xmonad --disable-acceleration-check --debug "\$@"
    exec ${gnome3.gnome-session}/bin/gnome-session --session=gnome-flashback-xmonad --disable-acceleration-check "\$@"
    EOF
    chmod +x $out/libexec/gnome-flashback-xmonad
  2. chpatrick revised this gist Jan 8, 2019. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion flashback-xmonad.nix
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,5 @@
    {

    services.displayManager.extraSessionFilePackages =
    let gnome-flashback-xmonad = pkgs.callPackage ({ stdenv, gnome3, bash, haskellPackages }: stdenv.mkDerivation {
    name = "gnome-flashback-xmonad";
    @@ -53,4 +55,6 @@ services.displayManager.extraSessionFilePackages =
    '';
    })
    {};
    in [ gnome-flashback-xmonad ];
    in [ gnome-flashback-xmonad ];

    }
  3. chpatrick created this gist Jan 8, 2019.
    56 changes: 56 additions & 0 deletions flashback-xmonad.nix
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    services.displayManager.extraSessionFilePackages =
    let gnome-flashback-xmonad = pkgs.callPackage ({ stdenv, gnome3, bash, haskellPackages }: stdenv.mkDerivation {
    name = "gnome-flashback-xmonad";

    buildDepends = [ gnome3.gnome-flashback gnome3.gnome-panel bash haskellPackages.xmonad ];

    buildCommand = ''
    mkdir -p $out/libexec
    cat << EOF > $out/libexec/gnome-flashback-xmonad
    #!${bash}/bin/sh
    if [ -z \$XDG_CURRENT_DESKTOP ]; then
    export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
    fi
    export XDG_DATA_DIRS=$out/share:${gnome3.gnome-flashback}/share:${gnome3.gnome-flashback}/share/gsettings-schemas/gnome-flashback-3.28.0:${gnome3.gnome-panel}/share:${gnome3.metacity}/share:\$XDG_DATA_DIRS
    exec ${gnome3.gnome-session}/bin/gnome-session --session=gnome-flashback-xmonad --disable-acceleration-check --debug "\$@"
    EOF
    chmod +x $out/libexec/gnome-flashback-xmonad
    mkdir -p $out/share/gnome-session/sessions
    cat << 'EOF' > $out/share/gnome-session/sessions/gnome-flashback-xmonad.session
    [GNOME Session]
    Name=GNOME Flashback (XMonad)
    RequiredComponents=xmonad;gnome-flashback-init;gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
    EOF
    mkdir -p $out/share/applications
    cat << 'EOF' > $out/share/applications/xmonad.desktop
    [Desktop Entry]
    Type=Application
    Encoding=UTF-8
    Name=Xmonad
    Exec=${haskellPackages.xmonad}/bin/xmonad
    NoDisplay=true
    X-GNOME-WMName=Xmonad
    X-GNOME-Autostart-Phase=WindowManager
    X-GNOME-Provides=windowmanager
    X-GNOME-Autostart-Notify=false
    EOF
    mkdir -p $out/share/xsessions
    cat << EOF > $out/share/xsessions/gnome-flashback-xmonad.desktop
    [Desktop Entry]
    Name=GNOME Flashback (XMonad)
    Comment=This session logs you into GNOME Flashback with XMonad
    Exec=$out/libexec/gnome-flashback-xmonad
    TryExec=${haskellPackages.xmonad}/bin/xmonad
    Type=Application
    DesktopNames=GNOME-Flashback;GNOME;
    EOF
    '';
    })
    {};
    in [ gnome-flashback-xmonad ];